2016-04-08 6 views
2

こんにちは私はそれがどのようにSQLサーバーで行えるのだろうかと思います。正確な行をすべての行の先頭に移動する他のすべての行を昇順に昇順昇順

私のコードは正しくありません。ここで

SELECT * FROM 
TABLE_NAME 
WHERE NAME = 'United Kingdom' 
ORDER BY Name 

はサンプルenter image description here

されており、ここで結果を期待されています。 enter image description here

ありがとうございました。

+0

サンプルテーブルのデータを追加すると期待される結果です。 – jarlh

+1

正確な行はどれですか?あなたは、おそらく 'ORDER BY CASE WHENのようなものが欲しいでしょう。Name = 'Something' THEN 0 ELSE 1 END、ASCという名前ですが、問題の最小限の情報に基づいて言うのはかなり難しいです。 – GarethD

+0

私はまったくあなたを得られなかったが、「ユニオン」を試してみた。 query1 =正確な行、 query2 = '正確な行'以外のすべての行。 query1 UNION query2はあなたの結果です – Immu

答えて

6

order bycaseを使用します。

SELECT * 
FROM TABLE_NAME 
ORDER BY (CASE WHEN NAME = 'United Kingdom' THEN 1 ELSE 2 END), Name; 

ORDER BYは、複数のキーを受け付けます。最初に、最初に希望の値を入力します。

+0

はい、これは正しいと思いますが、もっと簡単な答えがあります。 –

+2

とにかくこの複雑なものを正確には呼んでいないでしょう。あなたのカラムがヌル可能でないなら、 'ORDER BY NULLIF(Name、 'UnitedKingdom')'を使うことができますが、これはGordonのアプローチの構文的な砂糖に過ぎません。 – GarethD