-1
我需要按數字部分排序查詢。MS Sql按字符串的數字部分排序
我有很多行的樣子:
'ABCD.1234.567'
'ABCD.1234-2345'
'ABCD.1234.1213.1'
所以,我想第一個數字部分冷杉順序,然後通過第二,然後therd。 想要這樣:
'ABCD.1234.567'
'ABCD.1234.1213.1'
'ABCD.1234-2345'
我該怎麼做?
UPD:我試過按順序使用PATINDEX函數,但可以想出如何爲所有數字做到這一點。
order by s.product, (case when Patindex('% ,.,-%', s.product)=0 then 0
else Cast(SUBSTRING(s.product, Patindex('%[0-9]%', s.product), len(s.product)) as int) end)
@PeterB心中已經試圖用pathindex功能,可以SE這UPD – Gleb
執行字符串嚴格按照格式4字符後跟一個特殊字符,後跟4個數字,後面跟另一個特殊字符,然後是4個數字agaim? –
分隔符是否始終存在。和 - ? – gbn