[英]Alphanumeric and Numeric sorting in SQL Server
我需要對字母數字和數字排序應用排序。
例子:
319,
519,
620,
1154,
1195,
319lov,
319,
620lov
我需要這樣的結果:
319,
319,
319lov,
519,
620,
620lov,
1154,
1195,
我已應用以下代碼進行排序:
SELECT Name
FROM TableName
ORDER BY CAST(CASE
WHEN Name LIKE '[0-9][0-9][0-9][0-9]%' THEN LEFT(Name ,4)
WHEN Name LIKE '[0-9][0-9][0-9]%' THEN LEFT(Name ,3)
ELSE NULL
END AS INT)
得到如下結果:
319,
319lov,
319,
519,
620,
620lov,
1154,
1195,
SELECT name FROM t
ORDER BY CONVERT(INT, LEFT(name, PATINDEX('%[^0-9]%', name+'z')-1)),name;
您按所有數字排序,直到第一個非數字,字母在其中以相同的方式處理所有字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.