簡體   English   中英

替代SQL Server默認排序順序

[英]Override SQL Server Default Sort Order

為了正確地將數據“匹配”到另一個數據源,我想在此查詢中添加一些內容(也許是排序規則?),以便返回結果AZ 0-9而不是現在的0-9 AZ

SELECT TOP 1 order_id
FROM orders
WHERE order_id IS NOT NULL
ORDER BY order_id

請注意, order_id是一個nvarchar字段。

對於此示例,我要查找的是04394而不是ASK284。

這將迫使Alpha超過數字

SELECT TOP 1 order_id
FROM orders
WHERE order_id IS NOT NULL
ORDER BY case when order_id like '[0-9]%' then 1 else 0 end
        ,order_id

您可以通過對每種條件的CASE表達式進行排序來做到這一點:

Select      Top 1
            order_id
From        orders
Where       order_id Is Not Null
Order By    Case When Order_Id Like '[A-Z]%' Then 0 Else 1 End,
            Case When Order_Id Like '[0-9]%' Then 0 Else 1 End,
            Order_Id Asc;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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