我想问你这个简单的ORDER BY(在T-SQL中)子句。 假设我们在表格中有这些变量。 (该表有ID,名称,其他列)
'Peter'
''
''
'Anna'
'Michael'
'Bert'
''
''
''
目标是按升序排序,但是这样的空格会跟随而不是继续这些名称。 (我知道这听起来有点不合逻辑,但我需要所有的数据行 - 包括空格 - 表实际上有更多的列,我无法改变任何东西)。当然,这些字符的代码在字母表之前,但是如何欺骗它来产生这个输出?
SELECT name FROM table ORDER BY name
'Anna'
'Bert'
'Michael'
'Peter'
''
''
''
''
''
谢谢!
答案 0 :(得分:1)
您可以在ORDER BY
中使用CASE
:
SELECT
name
FROM
dbo.table
ORDER BY
CASE WHEN name IS NULL OR name='' THEN 1 ELSE 0 END ASC
, name ASC
此查询将首先分为两组:
然后它将由第一组首先排序,然后由名称本身排序。然后它会附加没有名字的小组。