首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使SQL查询中的某些记录没有值的列

如何使SQL查询中的某些记录没有值的列
EN

Stack Overflow用户
提问于 2019-02-02 07:01:57
回答 2查看 52关注 0票数 2

我需要生成一个输出来显示一个id(来自表1)的不同注释(来自table2),但是注释并不是必须出现在表2中。

尝试过的Case函数,但它也将NULL值作为额外的一行

表:员工id

代码语言:javascript
运行
复制
ID      Name            
100021  Bob         
100023  Tom         
100024  Jim         

表:员工备注

代码语言:javascript
运行
复制
ID      remark  remark text     
100021  job     manager     
100021  salary  5000        
100021  dept    classic     
100023  job     CSR     
100023  salary  4000        
100024  dept    customer        

必需的结果

代码语言:javascript
运行
复制
ID      Name    Job     Salary  Dept
100021  Bob     manager 5000    classic
100023  Tom     CSR     4000    NA
100024  Jim     NA      NA      customer
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-02 07:12:19

您似乎在寻找条件聚合:

代码语言:javascript
运行
复制
SELECT 
    i.id,
    i.name,
    COALESCE(MAX(CASE WHEN r.remark = 'job'    THEN r.remark_text END), 'NA') AS job,
    COALESCE(MAX(CASE WHEN r.remark = 'salary' THEN r.remark_text END), 'NA') AS salary,
    COALESCE(MAX(CASE WHEN r.remark = 'dept'   THEN r.remark_text END), 'NA') AS dept
FROM 
    employee_id AS i
    INNER JOIN employee_remark r ON r.id = i.id
GROUP BY 
    i.id,
    i.name

查询的工作方式是将两个表连接在一起,然后按用户聚合结果。在SELECT子句中,MAX(CASE WHEN WHEN r.remark = 'job' ...)用于将employee_remark中的行转换为列。COALESCE()函数检测NULL值并将其替换为字符串'NA'

票数 2
EN

Stack Overflow用户

发布于 2019-02-02 07:45:52

如果有帮助,请告诉我

代码语言:javascript
运行
复制
select e.*, job,salary, dept
from Employee_id e left join 
(SELECT r.id,
         MAX(CASE WHEN r.remark = 'job' THEN r.remark_text ELSE 'NA' END) AS job,
         MAX(CASE WHEN r.remark = 'salary' THEN r.remark_text ELSE 'NA' END) AS salary,
         MAX(CASE WHEN r.remark = 'dept' THEN r.remark_text ELSE 'NA' END) AS dept
    FROM Employee_Remarks r
GROUP BY r.id) rr
on e.id=rr.id
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54488242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档