书中的例子,数据库如图,需求是:查询只加入一个社团的学生的社团ID和加入多个社团的学生的社团主ID,Y为社团主ID,书中给出的代码是:
SELECT std_id,
CASE WHEN COUNT(*) = 1 /* 只加入了一个社团的学生 */
THEN MAX(club_id)
ELSE MAX(CASE WHEN main_club_flg = 'Y'
THEN club_id
ELSE NULL END)
END AS main_club
FROM StudentClub
GROUP BY std_id;
请问MAX(CASE WHEN main_club_flg = 'Y'这句话中MAX()函数的作用是?
啥书啊,怎么感觉不靠谱啊。应该不用加。
加的话可能是,数据库字段存在空的情况(我猜的),如下情况:
|std_id|club_id|club_name|main_club_flag|
100 null null Y
100 2 xxxx Y