是的,mysql允許在from子句中使用case表達(dá)式來選擇特定行,語法為:select … from table_name where and case when then when then else end as ,其中
MySQL FROM 后面能否使用 CASE 表達(dá)式?
答案:
可以
詳細(xì)解釋:
MySQL 允許在 FROM 子句中使用 CASE 表達(dá)式來從表中選擇特定行。CASE 表達(dá)式本質(zhì)上是一個條件語句,可以根據(jù)給定的條件返回不同的值。
語法:
<code>SELECT ... FROM table_name WHERE <filter_condition> AND CASE WHEN <condition1> THEN <value> WHEN <condition2> THEN <value> ELSE <default_value> END AS <alias></alias></default_value></value></condition2></value></condition1></filter_condition></code>
登錄后復(fù)制
其中:
<filter_condition></filter_condition>
是在應(yīng)用 CASE 表達(dá)式之前必須滿足的條件。
<condition1></condition1>
和 <condition2></condition2>
是要評估的條件。
<value></value>
是根據(jù)條件返回的值。
<default_value></default_value>
是如果沒有條件匹配時返回的默認(rèn)值。
<alias></alias>
是為 CASE 表達(dá)式結(jié)果分配的別名。
示例:
假設(shè)有一個 “customers” 表,包含以下列:
customer_id
name
country
我們可以使用 CASE 表達(dá)式從表中選擇來自特定國家/地區(qū)的客戶:
<code>SELECT * FROM customers WHERE country = 'United States' AND CASE WHEN age > 18 THEN 'Adult' WHEN age </code>
登錄后復(fù)制
此查詢將返回所有來自美國的客戶,并根據(jù)年齡將他們分類為成年人、未成年人或未知。