在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;