Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

书中的例子,数据库如图,需求是:查询只加入一个社团的学生的社团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()函数的作用是?
image


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
471 views
Welcome To Ask or Share your Answers For Others

1 Answer

啥书啊,怎么感觉不靠谱啊。应该不用加。
加的话可能是,数据库字段存在空的情况(我猜的),如下情况:
|std_id|club_id|club_name|main_club_flag|
100 null null Y
100 2 xxxx Y


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...