簡體   English   中英

SQL Server 中的字母數字和數字排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM