我需要一个SQL语句,它首先返回正ID 1,2,3,然后返回负ID -1,-2,-3等等。
我需要在MS SQL Server的一个sql语句中使用它。可能有人写一个sql语句的例子吗?非常感谢每一个有用的答案!
目前的输出:
ID | name
-46 | TestA
-45 | TestB
...
1 | TestK
2 | TestL
...
134 | TestC
我需要这个结果:
ID | name
134 | TestC
1 | TestK
2 | TestL
-46 | TestA
-45 | TestB
答案 0 :(得分:2)
尝试使用UNION:
SELECT id
FROM MYTABLE
WHERE id >= 0
ORDER BY id
UNION
SELECT id
FROM MYTABLE
WHERE id < 0
ORDER BY id DESC
答案 1 :(得分:0)
试试这个
SELECT TOP 3 ID FROM TBL WHERE ID > 0 ORDER BY ID
UNION ALL
SELECT TOP 3 ID FROM TBL WHERE ID < 0 ORDER BY ID DESC
答案 2 :(得分:0)
您希望先按标志排序,然后按幅度排序。尝试:
SELECT ID, Name FROM TBL ORDER BY SIGN(ID) DESC, Name
答案 3 :(得分:-2)
所以,我已经解决了我自己的问题。 这是我的SQL语句,效果很好:)
SELECT Id, Name
FROM TblName
WHERE Name LIKE '[a-z]%'
ORDER BY SIGN(Id) DESC, Name
此语句按名称对数据进行排序,但首先显示具有正ID的名称,然后显示负ID!