繁体   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