1. ホーム
  2. sql

[解決済み] 特定の値を持つ行を最初に返すには?

2022-07-06 05:27:08

質問

ある列が特定の値を含むテーブルの行を最初に返し、残りの行をアルファベット順に返すようにクエリを作成したいのです。

この例のようなテーブルがあったとします。

 - Table: Users
 - id - name -  city
 - 1    George  Seattle
 - 2    Sam     Miami
 - 3    John    New York
 - 4    Amy     New York
 - 5    Eric    Chicago
 - 6    Nick    New York

そして、そのテーブルを使用して、私のクエリは、最初にニューヨークを含む行を返し、次に都市によってアルファベット順に並べられた残りの行を返したいと思っています。これは1つのクエリだけを使用して行うことが可能ですか?

どのように解決するのですか?

SQL Server、Oracle、DB2、その他多くのデータベースシステムで、これを使用することができます。

ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city