Usando o MS SQL, gosto de substituir as informações na coluna OEM_Description quando a coluna Tradução do item (IT).Descrição é NULL e quando a configuração de idioma do cliente C.[Código do idioma] é inglês (ENG) na descrição do item original (I. [Descrição])
Cheguei a esta consulta:
SELECT
"OEM_Description" =
CASE
WHEN (C.[Language Code] = 'ENG' and IT.[Description] = NULL)
THEN I.[Description]
ELSE IT.[Description]
END,
C.Name as Customer_Name
Porém a informação só está sendo substituída se eu testar em "C.[Language Code] = 'ENG'" assim que eu adicionar o teste para IT.[Description] = NULL nada mais é substituído.
O que eu estou errado?
Você não menciona qual DBMS, mas provavelmente precisa
IS NULL
em vez de= NULL
. No entanto, você está criando um caso complexo quando este é um uso de livro didático deCOALESCE ()
:Solução alternativa com base no comentário:
IS NULL não é uma função, mas um substituto para
= NULL
o seu original assim: