我有以下测试代码:
CREATE TABLE #Foo (Foo int)
INSERT INTO #Foo SELECT 4
INSERT INTO #Foo SELECT NULL
INSERT INTO #Foo SELECT 2
INSERT INTO #Foo SELECT 5
INSERT INTO #Foo SELECT 1
SELECT * FROM #Foo
ORDER BY
CASE WHEN Foo IS NULL THEN Foo DESC ELSE Foo END
DROP TABLE #Foo
我正在尝试产生以下输出:
1 2 3 4 5 NULL
“如果为空则将其放在最后”
如何使用 Sql 2005 完成此操作
/M
最佳答案
一种方法是像这样排序:
ORDER BY
(CASE WHEN Foo IS NULL THEN 1 ELSE 0 END), Foo
或者:首先按 null 排序,然后按 Foo 内容排序。
关于SQL 排序顺序,最后为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498240/