热线电话:13121318867

登录
2022-09-13 阅读量: 657
CASE匹配表之间的数据

1663074726373(1).jpg1663074758561(1).jpg

现有表1CourseMaster(包含course_id,course_name),表2OpenCourses(包含month,course_id ),现在要求用这两张表通过SQL代码,生成如下图所示的交叉表:

1663074810509(1).jpg





解法:

/* 表的匹配:使用IN谓词 */

SELECT CM.course_name,

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200706) THEN '○'

ELSE '×' END AS "6月",

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200707) THEN '○'

ELSE '×' END AS "7月",

CASE WHEN CM.course_id IN

(SELECT course_id FROM OpenCourses

WHERE month = 200708) THEN '○'

ELSE '×' END AS "8月"

FROM CourseMaster CM;

68.4581
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子