簡體   English   中英

sql用多個小數對varchar進行數字排序

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

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