簡體   English   中英

T-SQL不能保持秩序

[英]T-SQL Not staying in order

我已經在SQL Server控制台C#中創建了一個數據庫,其中在垂直方向上向行添加了不同的組,例如G1,G2,G3等。

可以滿足需要的內容,但是像G10這樣添加值時,它會自動將自身置於G1下,因此,

G1
G2
G3
G10

它看起來像這樣:

G1
G10
G2
G3

我嘗試了以下查詢

SELECT * 
FROM mondayTable 
ORDER BY SAAT ASC

ORDER BY SAAT DESC

但它仍然保持相同的順序,但從上到下,從下到上。

這是ORDER BY DESC的屏幕截圖:

在此處輸入圖片說明

正如評論員所指出的,這是因為您的數據是按字母順序排列的,所以排序是正確的。 您可以使用如下形式:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM