我有是有尺寸如下项目表:如何在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值相当容易,但根据不同的单位计算正确的顺序可能有点棘手。顺便说一句,你不应该保持这样的混合数据。如果可能,将大小和单位分隔到不同的列。 –