gpt4 book ai didi

SQL:通过是和否显示表及其作业

转载 作者:行者123 更新时间:2023-12-01 13:26:13 25 4
gpt4 key购买 nike

这是我的 table :

用户表

Id | Username |
---------------
1 | jdoe |

作业表

Id | Job       |
----------------
1 | Waiter |
2 | Office |
3 | Freelance |

用户作业表

Id |UserId | JobId |
--------------------
1 | 1 | 2 |
2 | 1 | 3 |

如何选择此表并将其显示为如下所示:

Id | Username | Waiter| Office | Freelance|
-------------------------------------------
1 | jdoe | No | Yes | Yes |

最佳答案

这是一个非常标准的数据透视查询问题,有一点额外的变化。如果给定用户没有分配某种类型的工作,您需要显示 'No'。一种方法是使用 COALESCE 并替换 NULL 作业聚合。

SELECT u.Id,
u.Username,
COALESCE(MAX(CASE WHEN j.Job = 'Waiter' THEN 'Yes' END), 'No') AS Waiter,
COALESCE(MAX(CASE WHEN j.Job = 'Office' THEN 'Yes' END), 'No') AS Office,
COALESCE(MAX(CASE WHEN j.Job = 'Freelance' THEN 'Yes' END), 'No') AS Freelance
FROM User u
LEFT JOIN User_Job uj
ON u.Id = uj.UserId
LEFT JOIN Job j
ON uj.JobId = j.Id
GROUP BY u.Id,
u.Username

关于SQL:通过是和否显示表及其作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41218427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com