大家好,我是甯一。
今天是我們的第22課:IF函數。
大家如果學過其他編程語言,應該對IF函數很熟悉了。用來根據條件,返回不同值。
基本語法:
IF(條件表達式, 值1, 值2)
如果條件表達式為True,返回值1,為False,返回值2。
返回值可以是任何值,比如:數值、文本、日期、空值NULL、數學表達式、函數等。
1、 IF函數
實例:在Students表中,将1995年及之前出生的學生劃分為1班,1995年以後出生的學生劃分為2班,最後顯示Sname,Sage,所在班級這3列。
示例結果:
SELECT
Sname,
Sage,
IF(
YEAR(Sage) <=1995, "1班","2班"
) AS "所在班級"
FROM Students;
2、IF函數嵌套
當分類大于兩種時,可以将IF函數嵌套實現。
實例:在Students表中,學生編号Sid小于等于3的學生,屬于1班;Sid為4到6的學生,屬于2班;Sid大于等于7的學生屬于3班。最後顯示Sname,Sage,所在班級這3列。
SELECT
Sid,
Sname,
IF(Sid<=3,"1班",
IF(Sid>=7,'3班','2班')
) AS "所在班級"
FROM Students
嵌套函數看起來還是有點麻煩的,如果分類大于兩種,可以用CASE關鍵詞代替IF函數嵌套,下節課我們會具體講解。
3、IF 聚合函數
IF函數還經常與聚合函數結合使用,我們來看看實例。
實例:集合Teacher表和Students,計算班主任所帶學生的人數,大于等于5的顯示“5人及以上”,人數小于5的顯示“5人以下”。
示例結果:
SELECT
t.Tname,
COUNT(*) AS "學生人數",
IF(COUNT(*)>=5,"5人及以上","5人以下") AS "分類"
FROM Teachers t
JOIN Students s
ON t.Tid = s.Tid
GROUP BY t.Tname;
下節課我們講講 CASE 函數。
點擊關注,更新課程第一時間通知哦~
,