通过CASE语句处理订单和NULL值

时间:2015-02-10 18:26:01

标签: sql-server sorting sql-order-by case

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

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

2 个答案:

答案 0 :(得分:2)

您可以根据CASE语句的不同结果指定要订购的号码,如下所示:

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

答案 1 :(得分:0)

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

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