作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个构建为一对多的数据库,其中的“多”为 3 个“关键字”。例如:项目 A 可能具有关键字 B、C 和 D 中的任何/全部。这些关键字中的每一个都有与其对应的描述。我将如何选择该项目所具有的关键字的描述?
我的 table 看起来像:
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”使用不正确。
这可以做到吗?
最佳答案
您使用条件聚合
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
关于mysql - 使用 IF/CASE 语句排序到列 (AS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002182/
我是一名优秀的程序员,十分优秀!