我有一个构建为一对多的数据库,其中许多是3个“关键字”。例如:项目A可以具有关键字B,C和D中的任何/全部。这些关键字中的每一个都具有与其对应的描述。我如何选择项目的关键字描述?
我的表格如下:
Item----Keyword----Description
A-------B--------------desc1
A-------C--------------desc2
如果项目A有关键字C和D,并且C的描述是“desc1”而D的描述是“desc2”,我希望我的输出为:
Item---KeyB---KeyC---KeyD
A------NULL---desc1---desc2
抱歉格式不佳,我不知道如何在这里做表格。我试过了
SELECT
CASE
WHEN Keyword = 'B' THEN Description AS 'KeyB'
WHEN Keyword = 'C' THEN Description AS 'KeyC'
WHEN Keyword = 'D' THEN Description AS 'KeyD'
END
但是这会给我一个错误,因为“AS”使用不正确。
这可能吗?
答案 0 :(得分:0)
您无法像动态一样动态更改列名。但是您可以尝试这个
SELECT CASE WHEN Keyword = 'B' THEN 'KeyB'
WHEN Keyword = 'C' THEN 'KeyC'
WHEN Keyword = 'D' THEN 'KeyD'
END
答案 1 :(得分:0)
您使用条件聚合
SELECT item,
MAX( CASE WHEN Keyword = 'B' THEN Description END) as KeyB,
MAX( CASE WHEN Keyword = 'C' THEN Description END) as KeyC,
MAX( CASE WHEN Keyword = 'D' THEN Description END) as KeyD
FROM YourTable
GROUP BY item