MySQL中的CASE函數(shù)是一種表達(dá)式,用于將一些條件語(yǔ)句與一組可選值進(jìn)行匹配,選擇符合特定條件的值并返回結(jié)果。它有兩種形式:簡(jiǎn)單CASE和搜索CASE。
簡(jiǎn)單CASE函數(shù)的語(yǔ)法如下:
SELECT CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE result END FROM table_name;
搜索CASE函數(shù)的語(yǔ)法如下:
SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END FROM table_name;
簡(jiǎn)單CASE函數(shù)的expression是一個(gè)列或表達(dá)式,用于匹配value1、value2等選項(xiàng)。搜索CASE函數(shù)則有多個(gè)condition,它們逐個(gè)被測(cè)試以匹配結(jié)果。如果沒(méi)有匹配項(xiàng),則返回ELSE中的result。
下面是一個(gè)使用簡(jiǎn)單CASE的示例:
SELECT name, CASE gender WHEN 'M' THEN 'Male' WHEN 'F' THEN 'Female' ELSE 'Unknown' END as gender FROM customers;
這個(gè)查詢將返回一個(gè)名為gender的新列,其中'M'對(duì)應(yīng)'Male','F'對(duì)應(yīng)'Female',其他值對(duì)應(yīng)'Unknown'。
而下面是一個(gè)使用搜索CASE的示例:
SELECT name, CASE WHEN age >50 THEN 'Older' WHEN age >30 THEN 'Middle-aged' WHEN age >20 THEN 'Young adult' ELSE 'Teenager' END as age_group FROM customers;
這個(gè)查詢將返回一個(gè)名為age_group的新列,其中根據(jù)條件分別對(duì)應(yīng)‘Older’、‘Middle-aged’、‘Young adult’和‘Teenager’。
CASE函數(shù)是一個(gè)非常有用的工具,可以根據(jù)不同的條件返回不同的結(jié)果。然而,它也應(yīng)該謹(jǐn)慎使用,以免使查詢變得復(fù)雜和難以理解。