在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實現此查詢?
如果可能的話,我希望除了名稱+描述之外,還有一個查詢不會變得很龐大,只有20個屬性。
這裏是我當前的嘗試,它的鍵合併行,但不幸的是,我不知道如何告訴它喜歡英語,如果幾種語言可供現場:
SELECT
key,
MAX(name) AS name,
MAX(description) AS description
FROM
monuments
GROUP BY
key;