[英]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.