Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ratu

COALESCE e NULLIF

Recommended Posts

eae caras beleza?!!

 

 

Entaum eu estou com uma duvida, eu apertei o F1 e vi alguns exemplo de COALESCE e NULLIF mas naum entendi oq eles fazem... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif desculpe a ignorância, mas alguem pode dar uma exlplicação???

 

 

 

OBRIGADO desde já! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falai Ratu beleza,

 

COALESCE - procura o primeiro valor não nulo em uma expressão, se todos os valores da expressão estiverem nulo dai naum tem jeito vai retornar nulo mesmo, a não ser que você coloque um ultimo valor não nulo fixo definido como 0 (zero) por exemplo

 

exemplo:

declare @teste table (campo1 int, campo2 int)insert into @teste (campo1, campo2) values (null, 1) --vai retornar 1insert into @teste (campo1, campo2) values (2, null) --vai retornar 2insert into @teste (campo1, campo2) values (null, 3) --vai retornar 3insert into @teste (campo1, campo2) values (4, 1000) --vai retornar 4 que é o primeiro valor não nulo encontradoinsert into @teste (campo1, campo2) values (null, null) --vai retornar null--select normalselect * from @teste--este select vai trazer o 1º valor não nulo que encontrar entre os campos campo1 e campo2, se os dois forem null vai retornar 0 (zero) pois é o ultimo valor não nulo e está fixo, ou seja, 0 (zero) nunca vai ser nuloselect COALESCE(campo1, campo2, 0) from @teste--este select vai trazer o 1º valor não nulo que encontrar entre os campos campo1 e campo2, se os dois forem null vai retornar null pois não foi fixado um último valor não nuloselect COALESCE(campo1, campo2) from @teste

 

NULLIF - faz a verificação entre dois valores, se estes forem iguais retorna NULL

exemplo:

select NULLIF(2, 3)--retorna 2, no caso o 1º elemento, pois os dois valores são diferentesselect NULLIF(1, 1)--retorna null pois os dois valores são iguais

 

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.