SELECT
`job_id`,
CASE `job_id`
WHEN 'AD_PRES' THEN 'A'
WHEN 'ST_MAN' THEN 'B'
WHEN 'IT_PROG' THEN 'C'
END AS 'grade'
FROM
`employees`
WHERE
'grade' IS NOT NULL;
uj5u.com熱心網友回復:
MySQL 中的單引號表示字串文字。對于資料庫識別符號,例如列名或表名,如果不需要,請使用雙引號、反引號或不使用任何內容。在這里您不需要轉義別名。此外,您通常不能在WHERE子句中參考別名。但是,MySQL 已經多載了它的HAVING運算子以允許它參考一個別名。把這些放在一起,我們可以使用這個版本:
SELECT job_id,
CASE job_id WHEN 'AD_PRES' THEN 'A'
WHEN 'ST_MAN' THEN 'B'
WHEN 'IT_PROG' THEN 'C'
END AS grade
FROM employees
HAVING grade IS NOT NULL;
請注意,您也可以將其表述為:
SELECT job_id,
CASE job_id WHEN 'AD_PRES' THEN 'A'
WHEN 'ST_MAN' THEN 'B'
WHEN 'IT_PROG' THEN 'C'
END AS grade
FROM employees
WHERE job_id IN ('AD_PRES', 'ST_MAN', 'IT_PROG');
這也有效,因為只有當是這三個值之一時grade才會是非。NULLjob_id
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457350.html
