)SQLiteデータベースでは、キーで識別されるモニュメントがあります。各キーについて、私はその記念碑について様々な言語(言語ごとの行)で名前+説明を持っています。名前と説明の一部が欠けている:鍵に基づくレコードのマージ(優先度は
key | language | name | description
======================================================
3 | English | *NULL* | A museum in Paris
3 | French | Le Louvre | Un musée à Paris
7 | English | Manneken | *NULL*
7 | French | Manneken Pis | Une statue à Bruxelles
9 | Spanish | Casa Batllo | *NULL*
私の目標:私は同じキーを持つ行をマージしたい、英語を優先して。期待される結果:
key | name | description
===========================================
3 | Le Louvre | A museum in Paris
7 | Manneken | Une statue à Bruxelles
9 | Casa Batllo | *NULL*
説明:
- 記念碑3:英語での説明、英語の名前がないので、他の言語から名前。
- 記念碑7:英語から、英語は説明がないので、別の言語の説明。
- 記念碑9:英語は全く情報がないため、スペイン語のすべてです。
SQLite SQLでこのクエリを実装する方法は?
可能であれば、私はname + descriptionに加えて20のプロパティで膨大にならないクエリを期待しています。ここで
が私の現在の試みである、それはキーで行をマージしますが、残念ながら私はいくつかの言語は、フィールドで使用可能な場合は、英語を好むことを言うのか分からない:
SELECT
key,
MAX(name) AS name,
MAX(description) AS description
FROM
monuments
GROUP BY
key;