[英]T-SQL Not staying in order
正如評論員所指出的,這是因為您的數據是按字母順序排列的,所以排序是正確的。 您可以使用如下形式:
SELECT *
FROM mondayTable
ORDER BY CAST(SUBSTRING(SAAT,2,LEN(SAAT)) AS INT)
這是正常現象,因為您正在按字符排序。 為了放置它,我會在“ G”后面加上數字。
例如:
G01
G02
G03
G04
G05
G06
G07
G08
G09
G10
G11
或者,如果您認為數字將達到1000
G0001
G0002
G0003
G0004
G0005
G0006
G0007
G0008
G0009
G0010
G0011
一個簡單的方法是
選擇'G'+ RIGHT('000'+ CAST(2 as varchar(4)),4)
選擇'G'+ RIGHT('000'+ CAST(11 as varchar(4)),4)
這將產生
G0002
G0011
另一種方法是像這樣下訂單
按CAST(REPLACE(SAAT,'G','')AS INT)ASC排序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.