为了正确匹配'数据到另一个数据源,我希望为此查询添加一些内容(可能是排序规则?),以便返回结果A-Z 0-9
而不是现在的0-9 A-Z
。
SELECT TOP 1 order_id
FROM orders
WHERE order_id IS NOT NULL
ORDER BY order_id
请注意,order_id
是nvarchar
字段。
在这个例子中,我正在寻找订单04394而不是订购ASK284,因为我正在寻找。
答案 0 :(得分:4)
这会强制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
答案 1 :(得分:0)
您可以通过在每个条件的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;