2014-06-03 5 views
-1

Я пытаюсь использовать случай в выражении select. Я никогда не делал этого раньше, поэтому я не уверен в синтаксисе. Вот что я до сих пор:Select Statement with Case

CASE(column_name) 
     WHEN NULL THEN 'Unnamed' 
     ELSE column_name 
END AS my_alias 

Как описать, что произойдет, если встретится нулевое значение?

+0

coalesce будет лучше на самом деле 'COALESCE (column_name, 'Без имени')' - если это SQL Server – EkoostikMartin

+0

использовать NVL(), если в oracle, или NULLIF, если mysql –

ответ

2

Как я могу описать, что произойдет, если встретится нулевое значение?

Использование COALESCE, NVL, ISNULL, NULLIF или любой другой функции подходит для серверного программного обеспечения you'requerying:

COALESCE(column_name, 'Unnamed') AS my_alias 

ISNULL(column_name, 'Unnamed') AS my_alias 

Если CASE заявление не работает, потому что это x = NULL всегда ложно (даже если x - null), так что случай никогда не используется. Вы можете получить его на работу с помощью IS NULL:

CASE 
     WHEN column_name IS NULL THEN 'Unnamed' 
     ELSE column_name 
END AS my_alias 

но COALESCE чище.