我有下面的表格,按照升序排序,除了第一个值
Strand
3.1.1
3.1.1.1
3.1.1.2
3.1.2
3.1.2.1
3.1.2.2
3.10 # this should have been at the top most
3.2.1
3.2.1.1
...
...
3.20 #Similarly,this should have been above 3.2.1 and below 3.1.2.2
该列在varchar中,我认为将3.10转换为3.1和3.20转换为3.2将完成这一操作,即仅将varchar转换为十进制(1,1),但我还没有得到如何转换或转换为列内的特定字段...我不想要整个列...我不会得到答案然后...
答案 0 :(得分:0)
您可以加入order by
长度。
ORDER BY
LEFT(strand,1),
RIGHT(LEFT(strand,3),1),
CASE WHEN RIGHT(LEFT(strand,4),1) <> '.' and RIGHT(LEFT(strand,4),1) <> '' THEN 1 ELSE 2 END
有了这个,首先会出现较短的字符串
答案 1 :(得分:0)