PL/SQL IIF , EXISTE ?
PL/SQL IIF , EXISTE ?
Se sim, como é ?
googleei mas não achei
grato
Se sim, como é ?
googleei mas não achei
grato
Caro VILMARBR
Sim para a maioria dos SGBD se for para ORACLE
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b FROM T1 WHERE e>1;
IF b=1 THEN
INSERT INTO T1 VALUES(b,a);
ELSE
INSERT INTO T1 VALUES(b+10,a+10);
END IF;
END;
Isso é bem básico pode ficar dentro de uma procedure. IF dentro de UM BEGIN
Boa Sorte
Sim para a maioria dos SGBD se for para ORACLE
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b FROM T1 WHERE e>1;
IF b=1 THEN
INSERT INTO T1 VALUES(b,a);
ELSE
INSERT INTO T1 VALUES(b+10,a+10);
END IF;
END;
Isso é bem básico pode ficar dentro de uma procedure. IF dentro de UM BEGIN
Boa Sorte
ISTO NAO
falo do IIF do VB 6, SE do excel
checa valor verdade, valor true, valor false
era para jogar direto numa linha de insert por exemplo, sempre precisar tratar com if antes, por que isto eu já fiz....
vlw mesmo assim
falo do IIF do VB 6, SE do excel
checa valor verdade, valor true, valor false
era para jogar direto numa linha de insert por exemplo, sempre precisar tratar com if antes, por que isto eu já fiz....
vlw mesmo assim
Boa noite.
Amigo,
Acho que terá que usar CASE...END nesse caso.
Veja se esse conteúdo pode lhe ajudar: Oracle/PLSQL: Case Statement
Até mais.
JSFF77
www.visualgria.com.br
Amigo,
Acho que terá que usar CASE...END nesse caso.
Veja se esse conteúdo pode lhe ajudar: Oracle/PLSQL: Case Statement
Até mais.
JSFF77
www.visualgria.com.br
Vc pode utilizar assim:
case when (seucampo>=algumacoisa) then [ô]O resultado aqui, valor ou string, data, etc[ô]
when (SEUCAMPO IN (1,2,3,4,5)) then [ô]O outro resultado aqui[ô] else [ô]Se nenhum for verdadeiro aqui[ô] end NomeCampo
Vc pode fazer várias condições por vez e comparações de formas diferentes, sendo que a sitaxe é sempre:
Case When (Condicao1) then [ô]Retorno1[ô]
Case When (Condicao2) then [ô]Retorno2[ô]
Case When (Condicao3) then [ô]Retorno3[ô]
......
Case When (CondicaoN) then [ô]RetornoN[ô] else [ô]Resultado se nenhum for Verdadeiro[ô] end
Você pode colocar mais de uma verificação por condição: when (a.valor>=b.precofinal and a.valor<b.precovenda) then 1
Você precisa ter como resultados um mesmo tipo de dado, ou seja, os Retornos têm que estar no mesmo tipo de dados.
Agora, há situaões onde é mais vantajoso utilizar o DECODE. Esse comando serve para comparar um determinado valor OU STRING com uma série de valores OU STRINGS,sempre que ocorrer de ser igual ao proposto, haverá o retorno correspondente:
Tipo assim: DECODE(a.Status,COMPARACAO1,RETORNO1,COMPARACAO2,RETORNO2,COPARACAO3,RETORNO3,RETORNOPADRAO)
EX: Se um determinado campo tiver como valores possÃveis: 1 que significa ativo, 2 que significa inativo e 3 que significa indiferente, e vc não pode ou não quer relacionar com uma tabela, mas precisa retornornar o significado do valor do campo como string, poderia fazer assim:
decode(status,1,[ô]Ativo[ô],2,[ô]Inativo[ô],3,[ô]Indiferente[ô],[ô]Nao Identificado[ô])
Veja que se fosse utilizar o Case When, haveria uma quantidade bem maior de SQL:
case when (STATUS=1) THEN [ô]ATIVO[ô]
WHEN (STATUS=2) THEN [ô]INATIVO[ô]
WHEN (STATUS=3) THEN [ô]INDIFERENTE[ô] ELSE [ô]NAO IDENTIFICADO[ô] END
case when (seucampo>=algumacoisa) then [ô]O resultado aqui, valor ou string, data, etc[ô]
when (SEUCAMPO IN (1,2,3,4,5)) then [ô]O outro resultado aqui[ô] else [ô]Se nenhum for verdadeiro aqui[ô] end NomeCampo
Vc pode fazer várias condições por vez e comparações de formas diferentes, sendo que a sitaxe é sempre:
Case When (Condicao1) then [ô]Retorno1[ô]
Case When (Condicao2) then [ô]Retorno2[ô]
Case When (Condicao3) then [ô]Retorno3[ô]
......
Case When (CondicaoN) then [ô]RetornoN[ô] else [ô]Resultado se nenhum for Verdadeiro[ô] end
Você pode colocar mais de uma verificação por condição: when (a.valor>=b.precofinal and a.valor<b.precovenda) then 1
Você precisa ter como resultados um mesmo tipo de dado, ou seja, os Retornos têm que estar no mesmo tipo de dados.
Agora, há situaões onde é mais vantajoso utilizar o DECODE. Esse comando serve para comparar um determinado valor OU STRING com uma série de valores OU STRINGS,sempre que ocorrer de ser igual ao proposto, haverá o retorno correspondente:
Tipo assim: DECODE(a.Status,COMPARACAO1,RETORNO1,COMPARACAO2,RETORNO2,COPARACAO3,RETORNO3,RETORNOPADRAO)
EX: Se um determinado campo tiver como valores possÃveis: 1 que significa ativo, 2 que significa inativo e 3 que significa indiferente, e vc não pode ou não quer relacionar com uma tabela, mas precisa retornornar o significado do valor do campo como string, poderia fazer assim:
decode(status,1,[ô]Ativo[ô],2,[ô]Inativo[ô],3,[ô]Indiferente[ô],[ô]Nao Identificado[ô])
Veja que se fosse utilizar o Case When, haveria uma quantidade bem maior de SQL:
case when (STATUS=1) THEN [ô]ATIVO[ô]
WHEN (STATUS=2) THEN [ô]INATIVO[ô]
WHEN (STATUS=3) THEN [ô]INDIFERENTE[ô] ELSE [ô]NAO IDENTIFICADO[ô] END
decode, isto ae, gostei
grato
grato
Tópico encerrado , respostas não são mais permitidas