通过 CASE 语句处理 Order 和 NULL 值

Dealing with Order by CASE Statements and NULL value

我想根据列自定义排序依据。如果列值为 NULL 或 ''(空字符串),那么我想先显示该行。 SQL 服务器不喜欢以下内容:

ORDER BY
        CASE WHEN  ISNULL(SendDate.ValidTo, '') = ''
        THEN NULL
        END

ORDER BY
        CASE WHEN  ISNULL(SendDate.ValidTo, '') = ''
        THEN ISNULL(SendDate.ValidTo, '') = ''
        END

是否可以接受以下操作?:

ORDER BY
        CASE WHEN  ISNULL(SendDate.ValidTo, '') = ''
        THEN SendDate.ValidTo
        END

您可以分配一个数字,根据您的 CASE 语句的不同结果进行排序,如下所示:

ORDER BY CASE WHEN COALESCE(SendDate.ValidTo,'') = '' THEN 1 ELSE 2 END

我意识到,我本可以做到以下几点:

ORDER BY
        ISNULL(SendDate.ValidTo, '1900-01-01')