我正在尝试通过枚举对查询进行排序,我希望我的枚举的 2 个值具有相同的优先级,但我也希望 NULL 混合在其中,而不是第一个。
我正在使用一种情况,当使用 OR 运算符的语法在它们之间连接相同的优先级时,它似乎工作得很好,除了 NULL,它们没有正确排序,它们看起来是随机的。
CASE
WHEN company_size = 0 OR
company_size = 1 OR
company_size = NULL THEN '0'
WHEN company_size = 2 THEN '1'
WHEN company_size = 3 THEN '2'
END
请帮忙
最佳答案
NULL = NULL
的计算结果为 NULL,而不是 true。在 CASE WHEN 表达式中,NULL 与 false 具有相同的结果。要将 NULL 与 1 和 0 混合在一起,您可能需要这样:
CASE
WHEN company_size = 0 OR
company_size = 1 OR
company_size is NULL THEN '0'
WHEN company_size = 2 THEN '1'
WHEN company_size = 3 THEN '2'
END
关于sql - 按案例排序,NULL 不是第一个也不是最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59041784/