[英]SQL, varchar field with decimals entries = ORDER BY not sorting proprely
[英]sql sorting varchar numerically with multiple decimals
我有一個 varchar 列,其中包含
0.1
0.8
0.2
Drr
0.11
0.8.1
0.8.2
0.2.1
我該如何排序以獲得這樣的結果?
0.1
0.2
0.2.1
0.8
0.8.1
0.8.2
0.11
Drr
謝謝
你可以試試這個:
WITH isContainAlpha AS
(
SELECT *,
CASE WHEN version_no LIKE '%[a-z]%' THEN 1 ELSE 0 END AS withAlpha,
CASE WHEN version_no LIKE '%[a-z]%' THEN '0' ELSE version_no END AS version_no_rewrite
FROM tableOne
)
SELECT version_no
FROM isContainAlpha
ORDER BY withAlpha, CAST('/'+REPLACE(version_no_rewrite,'.','/')+'/' as hierarchyID)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.