在 SQLSERVER/MSSQL 中,问题如下:
SELECT * from [Translation Color] order by [Language Code]
我希望记录按字母顺序排序,以“I”字母开头。
结果示例:
“艾奥伦” '流门' '酸' '阿尔芬' “冷干”
我不想使用 union 或更多 sql 语句..只需尝试使用 order by 特殊子句来捕获它。
我尝试过:
ORDER BY <field> REGEXP '^I' DESC
但是没有成功。
有什么想法吗?
最佳答案
这应该可以做到:
ORDER BY CASE WHEN SUBSTRING([Translation Color],1,1) = 'l'
THEN 1 ELSE 0 END DESC
编辑:
从 i 开始完全排序,然后循环回到 h 的完整答案是:
ORDER BY CASE WHEN ASCII(UPPER(SUBSTRING([Translation Color],1,1))) < 73
THEN ASCII(UPPER(SUBSTRING([Translation Color],1,1))) + 26
ELSE ASCII(UPPER(SUBSTRING([Translation Color],1,1))) END ASC,
[Translation Color] ASC
请注意,这会影响大型表的性能。
关于sql - 获取Sql Server中以某个字母开头的按字母顺序排列的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708967/