これは、列内の指定された値を含む行を取得する理想的なクエリではない可能性がありますが、以下の解決策は、新しい列エイリアスで指定された値を効果的に返しますが、NULL値を含みます。以下のクエリは、列のエイリアス内にNULL値を含む行を除外するためにどのように構築されますか?
SELECT student_id,
salutation,
CASE
WHEN salutation IN('Dr.') THEN 'Doctor'
END AS "NewSalutation"
FROM student.student
私は代替アプローチを歓迎します-ありがとう!
SELECT * FROM (
SELECT student_id,
salutation,
CASE
WHEN salutation IN('Dr.') THEN 'Doctor'
END AS NewSalutation
FROM student.student
)
WHERE NewSalutation IS NOT NULL;
それがCASE
ステートメントの唯一のセクションである場合、論理的に同等のクエリは次のようになります。
SELECT student_id,
salutation,
CASE
WHEN salutation IN('Dr.') THEN 'Doctor'
END AS NewSalutation
FROM student.student
WHERE salutation = 'Dr.';
... Dr.
以外はNULL
NewSalutation
を生成するため。