Usuário com melhor resposta
Dúvida em relação ao IF.

Pergunta
-
Bom dia galera,
Eu tenho uma dúvida em relação ao IF do SQL SERVER. Eu tenho na tabela com os campos do tipo (VARCHAR) com a relação de comparar dois campos de uma tabela. Será que consigo utilizar o IF para o uso do VARCHAR. Ou serve apenas para o tipo de campo Booleano?
Respostas
-
Milton,
Você pode fazer essa comparação com IF sim.
Também pode usar o CASE.
Veja um exemplo:
create table tabela1 ( id int, valor1 varchar(20), valor2 varchar(20) ); insert into tabela1 values (1,'aaa','aaa'), (2,'ccc','ddd'); select *, case when valor1 = valor2 then 1 else 0 end Iguais from tabela1 declare @val1 varchar(20) declare @val2 varchar(20) select @val1 = valor1, @val2 = valor2 from tabela1 where id = 1 if @val1 = @val2 select @val1 valor1, @val2 valor2, 1 Iguais else select @val1 valor1, @val2 valor2, 0 Iguais drop table tabela1
- Editado Rafael Juca quarta-feira, 20 de julho de 2016 13:01
- Marcado como Resposta Milton Honji quarta-feira, 20 de julho de 2016 14:07
-
Milton,
Até a versão 2008 R2 não era possível utilizar o comando IF dentro de um comando Select, neste caso para realizar comparações era necessário fazer uso do comando Case.
A partir da versão 2012 a Microsoft adicionou o comando IIF o mesmo existente no Visual Studio, através dele você tem a possibilidade de fazer este tipo de análise dentro do Select, sendo assim:
- Para comparar valores ou condições fora do Select utilize o IF;
- Para comparar valores ou condições dentro de um Select use o Case ou IIF.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Milton Honji quarta-feira, 20 de julho de 2016 14:07
Todas as Respostas
-
-
-
Milton,
Você pode fazer essa comparação com IF sim.
Também pode usar o CASE.
Veja um exemplo:
create table tabela1 ( id int, valor1 varchar(20), valor2 varchar(20) ); insert into tabela1 values (1,'aaa','aaa'), (2,'ccc','ddd'); select *, case when valor1 = valor2 then 1 else 0 end Iguais from tabela1 declare @val1 varchar(20) declare @val2 varchar(20) select @val1 = valor1, @val2 = valor2 from tabela1 where id = 1 if @val1 = @val2 select @val1 valor1, @val2 valor2, 1 Iguais else select @val1 valor1, @val2 valor2, 0 Iguais drop table tabela1
- Editado Rafael Juca quarta-feira, 20 de julho de 2016 13:01
- Marcado como Resposta Milton Honji quarta-feira, 20 de julho de 2016 14:07
-
Milton,
Até a versão 2008 R2 não era possível utilizar o comando IF dentro de um comando Select, neste caso para realizar comparações era necessário fazer uso do comando Case.
A partir da versão 2012 a Microsoft adicionou o comando IIF o mesmo existente no Visual Studio, através dele você tem a possibilidade de fazer este tipo de análise dentro do Select, sendo assim:
- Para comparar valores ou condições fora do Select utilize o IF;
- Para comparar valores ou condições dentro de um Select use o Case ou IIF.
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Milton Honji quarta-feira, 20 de julho de 2016 14:07
-
-
-
-