我有一個表'MyTable',下面的列ID varchar(50)。在sql中排序字母數字列
ID
----------
10
100
700-6 0110B512
700-6 0110B513
700-8 0110B512
700-9 0110B512
我需要排序與輸出此列
ID
----------
10
100
700-6 0110B512
700-8 0110B512
700-9 0110B512
700-6 0110B513
請幫助!
我已經嘗試過,但輸出不符合要求。
SELECT * FROM MyTable
ORDER BY
Case
When IsNumeric(ID) = 1 then LEFT(Replicate('0',101) + ID, 100)
When IsNumeric(ID) = 0 then RIGHT(Replicate('0',101) + ID, 100)
Else ID
END
ASC
Isnumeric(id)= 1是否被擊中?字段ia varchar? – lloydom
它會被擊中10和100! –
你最多有三位數字嗎?那麼1,10,100,700但不是1000,2000,10000? – xanatos