如何让SQL查询结果首行固定为'Select',其余按字母排序?
解决SQL排序问题:首行固定'Select',其余行按字母排序
嘿,我来帮你搞定这个排序问题!你的当前语句确实能把'Select'固定在第一行,但因为只指定了CASE的排序条件,其余行没有额外的排序规则,所以它们的顺序是不确定的。
只需要在ORDER BY子句里添加第二个排序条件,就能让其余行按字母顺序排列了,修改后的SQL语句如下:
SELECT [Categories_Name] FROM [Categories] ORDER BY CASE [Categories_Name] WHEN 'Select' THEN 1 ELSE 2 END, [Categories_Name]
为什么这么改?
这里的排序逻辑分两步:
- 第一步:通过CASE语句给'Select'分配排序优先级1,其他所有行分配优先级2,这样优先级1的行必然排在最前面,保证'Select'是首行。
- 第二步:在优先级相同的情况下(也就是所有非'Select'的行),按照
[Categories_Name]的字母顺序进行排序,这样就能实现你要的其余行按字母排列的需求了。
比如如果你的Categories表数据是:'Select'、'Banana'、'Apple'、'Cherry',执行修改后的语句后,结果会是:
'Select'
'Apple'
'Banana'
'Cherry'
完美符合你的需求!
内容的提问来源于stack exchange,提问作者adam
相关产品推荐
相关产品推荐

