以下数据是从SQL表中随机提取的,我希望数据按以下顺序排序。我将如何为它编写SQL查询?
编辑:我想通过下面的图片订购。
答案 0 :(得分:1)
这应该这样做:(SQL Server,MYSQL)
SELECT [DESC], SortOrder]
FROM MyTable
ORDER BY [DESC] DESC
让我知道。
答案 1 :(得分:1)
order by length(desc) desc
注意:desc
几乎是所有数据库中的保留字,因此对于列来说它是一个糟糕的选择。此外,某些数据库中可能会将length()
称为len()
。
按第一列的长度排序,按降序排列。这似乎是基于样本数据的排序顺序。
答案 2 :(得分:1)
试试这个:
SELECT [DESC]
FROM MyTable
ORDER BY [DESC],
CASE WHEN LEN([DESC]) - LEN(REPLACE([DESC],' ','')) = 0 THEN 1
WHEN LEN([DESC]) - LEN(REPLACE([DESC],' ','')) = 1 THEN 2
WHEN LEN([DESC]) - LEN(REPLACE([DESC],' ','')) = 2 THEN 3
ELSE 4
END