我有是有尺寸如下項目表:如何在sql中對字母數字數據進行排序..?
1sq.mm.
1.5sq.mm.
0.5sq.mm.
2.5sq.mm.
0.75sq.mm.
4sq.mm.
20mm
25mm
20mtr
75mm x 50mm
100mm x 50mm
100mm x 100mm
75mm x 75mm
我想要顯示它有
0.5sq.mm.
0.75sq.mm.
1.5sq.mm.
2.5sq.mm.
4sq.mm.
20mm
20mtr
25mm
75mm x 50mm
75mm x 75mm
100mm x 50mm
100mm x 100mm
我嘗試以下SQL查詢,但我得到的錯誤
'Conversion failed when converting the varchar value '1 sq.mm.' to data type int.'
SQL查詢:
select * from Items
order by CAST(SUBSTRING(Sizes, PATINDEX('%[0-9]%', Sizes), LEN(Sizes)) AS INT)
一切都在平方毫米?如果不是,你如何根據單位定義訂單? –
[字母數字排序]的可能重複(http://stackoverflow.com/questions/29676432/alphanumeric-sort) –
@Supreethsup:由於這些字符串是大小列的一部分,我猜他們是大小單位,意思是0.5sq.mm'可能與0.5pcs不同。將數據分解爲數字和varchar值相當容易,但根據不同的單位計算正確的順序可能有點棘手。順便說一句,你不應該保持這樣的混合數據。如果可能,將大小和單位分隔到不同的列。 –