SQL Server – Uso de ISNULL e COALESCE em uma pesquisa

SQL Server – Uso de ISNULL e COALESCE em uma pesquisa

30 de janeiro de 2019 0 Por Ramos de Souza Janones

Nesta dica você aprenderá a diferença entre ISNULL e COALESCE em uma pesquisa SQL no SQL Server. 

A principal diferença de funcionalidade é que o COALESCE aceita n argumentos, retornando o primeiro com valor não NULL entre eles. O ISNULL só aceita dois argumentos, um possivelmente NULL, e outro para retornar se o primeiro for NULL.

Por exemplo, isto só dá para fazer com COALESCE:

SELECT COALESCE(col1, col2, col3, col4) AS valor;

Isso seleciona o primeiro valor que não seja nulo entre as quatro colunas passadas. Acredito que essa diferença você já conheça. No seu exemplo você só passa um argumento, então sob esse aspecto não há diferença entre usar uma função ou a outra. Mas é sempre bom lembrar que COALESCE faz parte do padrão da linguagem SQL, enquanto o ISNULL não faz.

Você vai gostar:  Transact-SQL do ZERO ao MASTER

Outra diferença (que é a que importa para a sua pergunta): o ISNULL retorna o tipo do seu primeiro argumento, enquanto o COALESCE retorna o tipo de maior precedência entre os passados. Os resultados estranhos que você mostra no screenshot são uma combinação disso com o efeito do NULLIF, que, segundo a documentação (grifo meu):

NULLIF returns the first expression if the two expressions are not equal. If the expressions are equal, NULLIF returns a null value of the type of the first expression.

Ou seja, o NULL que ele retorna é tipado (nunca imaginei isso) com base no tipo do primeiro argumento. Em todos os exemplos, seria um CHAR(3)VARCHAR(3) ou algo do tipo. Isso força o castdo segundo argumento do ISNULL para o mesmo tipo. No caso do valor número, o tipo é incompatível e o resultado é *.

Banco de dados

Artigos e dicas sobre banco de dados que você vai gostar:

MongoDB

– Principais diferenças entre MongoDB e MySQL ou outro RDBMS

– Southbank Software apresenta dbKoda: uma ferramenta de desenvolvimento Open Source para MongoDB

MySQL e Instruções SQL em geral

– SQL e Regex – Entenda quando e como usar em instruções SQL

– MySQL – Manter o formato Date e DateTime em formato dd/mm/Year e dd/mm/Year:HH:mm:ss

– SQL – O que são VIEWS SQL, vantagens e desvantagens

– Instrução Insert MySQL e JSON com todos os bancos brasileiros

– PHP e MySQL – Entendendo as codificações iso-8859-1 e UTF-8 e outras

– Como redefinir a senha de root do MySQL ou do MariaDB

– Para que serve uma MySQL Transaction?

– Banco de Dados – Índices desnecessários no banco são um problema?

– Entenda a diferença entre LIKE, IN e BETWEEN no MySQL

– LinkedIn desenvolve a ferramenta MySQL Query Analyzer

– Como otimizar consultas MySQL

– Quando é interessante desnormalizar o banco de dados?

– Entenda Views em SQL, vantagens e desvantagens

– O que é normalização de banco de dados

– Por que não devemos usar funções do tipo mysql_*

SQL – Entenda as diferenças entre aspas simples e duplas

– SQL – Not IN ou Not EXISTS quando usar?

– SQL – Entendendo JOINS

– PHP Do Zero Ao Profissional – Análise do Curso

 

Veja mais em: SQL Server.

Powered by Rock Convert

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Sumário
SQL Server - Uso de ISNULL e COALESCE em uma pesquisa
Nome do artigo
SQL Server - Uso de ISNULL e COALESCE em uma pesquisa
Descrição
Nesta dica você aprenderá a diferença entre ISNULL e COALESCE em uma pesquisa SQL no SQL Server. 
Autor
Nome
Ramos da Informática
Logo

Frontend Do Zero Ao Profissional