Observe o código de teste abaixo:
CREATE TABLE #teste
(
codigo INT
)
DECLARE @codigo INT;
SELECT @codigo = COALESCE(codigo, 0)
FROM #teste
SELECT @codigo AS [Retornando NULO]
DROP TABLE #teste
Se você executar o código acima, perceberá que o resultado é nulo, mesmo usando a função coalesce. No caso, o desenvolvedor resolveu problema adicionando uma verificação com IF verificando testando se a variável está nula.
Isso não está errado, porém acho que devemos diminuir ao máximo fluxos desnecessários de código. Podemos contornar o problema, adicionando o valor padrão na declaração da variável. Desta forma, se a query não retornar nada, a variável mantém o valor original.
CREATE TABLE #teste
(
codigo INT
)
INSERT INTO #teste
VALUES (1)
DECLARE @codigo2 INT = 0;
SELECT @codigo2 = COALESCE(codigo, 0)
FROM #teste
SELECT @codigo2 AS [Retornando ZERO]
DROP TABLE #teste
Check out my new book on MariaDB http://www.amazon.com/dp/B00MQC06HC
Nenhum comentário:
Postar um comentário
Leave your comment here!