2017-01-12 11 views
2

データを別のデータソースに正しく一致させるために、0-9 A-Zの代わりにA-Z 0-9の結果を返すために、このクエリに何か(おそらく照合?)を追加しようとしています今。SQLサーバーの既定の並べ替え順序をオーバーライドする

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

order_idnvarcharフィールドであることに注意してください。

この例では、私が探しているASK284の代わりに04394を注文しています。

答えて

4

これは数字の上にアルファを強制します

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式に発注することにより、これを行うことができます
0

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; 
+0

"CASE式" を参照してください。http://stackoverflow.com/質問/ 12436859/case-expression-vs-case-statement –

+0

@Used_By_Already Updated。 – Siyual

関連する問題