SELECT DATA,
COD_REPRE ,
NOME_REPRE ,
COD_ACA ,
DES_ACA ,
QTDE_CX_PREVISTO ,
VLR_PREVISTO ,
QTDE_CX_VENDIDO ,
VLR_VENDIDO ,
QTDE_CX_FATURADO ,
VLR_FATURADO ,
VLR_FATURADO_LIQ ,
PERC_CX_PREV_X_FATUR ,
PERC_VLR_PREV_X_FATUR
FROM V_COTA_REPRE_PROD
WHERE DATA BETWEEN :V_DATA_INI AND :V_DATA_FIM
CASE :WEB_COD_REP WHEN IS NOT NULL THEN
AND COD_REPRE = :WEB_COD_REP
ELSE
CASE :COD_SUP_WEB IS NOT NULL THEN
AND COD_REPRE IN(select r.cod_repre
from supervisores s, representantes r, login_web l
where l.codigo = s.func_cod_func
and s.cod_sup = r.regiao_cod_reg
and l.codigo = :COD_SUP_WEB)
END
END
AND DATA IS NOT NULL
ORDER BY COD_ACA, DATA
Usar CASE na clausula WHERE.
-
- Rank: DBA Sênior
- Mensagens: 323
- Registrado em: Qui, 21 Set 2006 10:21 am
- Localização: Barala - TT
Pessoal estou tentando usar o case dentro de uma clausula where, a lógica é simples mas não acerto fazer, dá erro de SQL terminado inesperadamente na linha 17 e não consegui encontrar a solução:
Alguém sabe me informar se a construção acima está correta?
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Dá uma pesquisada aqui no fórum, por Case .
Vai encontrar tópicos que podem ajudá-lo.
qualquer coisa, manda ai.
Dá uma pesquisada aqui no fórum, por Case .
Vai encontrar tópicos que podem ajudá-lo.
qualquer coisa, manda ai.
Editado pela última vez por Trevisolli em Qui, 24 Mai 2007 8:16 am, em um total de 2 vezes.
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
O Trevisolli deve ter se enganado.
Veja esse link: http://glufke.net/oracle/viewtopic.php?t=12
O certo é CASE WHEN. Veja esse exemplo acima!
Veja esse link: http://glufke.net/oracle/viewtopic.php?t=12
O certo é CASE WHEN. Veja esse exemplo acima!

-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Verdade, já eliminei o link, Dr_gori (Valeu).
Outra coisa, CASE na cláusula Where, eu nunca vi não.
Se alguém souber de algo, manda ai.
Outra coisa, CASE na cláusula Where, eu nunca vi não.
Se alguém souber de algo, manda ai.
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Eu mandei o link ali no POST de cima...
Existe sim, é CASE WHEN.
É muito bom !
Existe sim, é CASE WHEN.
É muito bom !
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Normalmente se usa CASE WHEN quando é muito complicado fazer a condição usando DECODE, ou outras funções.
Veja abaixo:
Tente fazer isso sem o case when 
No link citado anteriormente, tem um exemplo bem simples usando CaseWhen e a mesma coisa não usando..Veja que é bem complicado de fazer e pouco "entendível"..

Veja abaixo:
select
campo1
, campo2
, case
when taxa>0 and valor>=100 and valor <1000 then salario*2
when taxa= and valor>=1000 then salario*1.5
when valor < 100 then salario *3
end novo_valor
from tabela

No link citado anteriormente, tem um exemplo bem simples usando CaseWhen e a mesma coisa não usando..Veja que é bem complicado de fazer e pouco "entendível"..

-
- Rank: DBA Júnior
- Mensagens: 223
- Registrado em: Qui, 14 Dez 2006 10:45 am
- Localização: Brasília-DF
Cleber Zumba de Souza
CASE na cláusula WHERE??....como?...eu nunca vi...coloca aí para eu ver!
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
O Case que eu falo não é na CLAUSULA WHERE. Não faz sentido usar case na cláusula where!
-
- Rank: Analista Sênior
- Mensagens: 130
- Registrado em: Seg, 22 Nov 2004 1:45 pm
- Localização: Niterói - RJ
Gustavo Erthal Jr. | TRISCAL
...................................................
Rio de Janeiro | (21) 2507-2010
São Paulo | (11) 3167-0526
www.triscal.com.br
...................................................
Rio de Janeiro | (21) 2507-2010
São Paulo | (11) 3167-0526
www.triscal.com.br
Senhores,
Para utilizar um CASE na cláusula WHERE é muito simples, vocês precisam de uma igualdade para funcionar, por exemplo
Resolvida a questão. E eu já vi e muito sobre a utilização desse recurso na cláusula WHERE, pois tudo depende do modelo.
Abraços
Para utilizar um CASE na cláusula WHERE é muito simples, vocês precisam de uma igualdade para funcionar, por exemplo
SELECT ....
FROM ...
WHERE 1 = CASE A = B THEN 1 ELSE = END
Abraços
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP
São Paulo/SP
galera, pegando um tópico antigo aqui
não consegui entender essa lógica do erthal
eu preciso fazer isso:
onde se var1 = 'G' a comparação deva ser:
e se var1 = 'S':
dá pra fazer isso com o CASE na cláusula Where ou de outra forma?
não consegui entender essa lógica do erthal
eu preciso fazer isso:
DEFINE var1 = 'G' ou 'S';
SELECT georgset.orgs_ds || DECODE(georgset.orgs_dt_final,NULL,' (Ativo)',' (Inativo)') Label,
georgset.orgs_cd Value
FROM georgset, rhexpencar
WHERE georgset.orgs_cd = rhexpencar.orgs_cd
AND georgset.empr_cd = '01'
AND rhexpencar.func_cd = '006112'
AND georgset.orgs_dt_final IS NULL;
ORDER BY 1
AND georgset.orgs_dt_final IS NOT NULL
AND georgset.orgs_dt_final IS NULL
dá pra fazer isso com o CASE na cláusula Where ou de outra forma?
- mic_mota
- Rank: Estagiário Pleno
- Mensagens: 7
- Registrado em: Qua, 12 Mar 2008 4:29 pm
- Localização: São Bernardo do Campo-SP
Abraço,
Michelle Mota
Michelle Mota
Eu pensei em algo assim (não testei)
Abrazzz

DEFINE var1 = 'G' ou 'S';
SELECT georgset.orgs_ds || DECODE(georgset.orgs_dt_final,NULL,' (Ativo)',' (Inativo)') Label,
georgset.orgs_cd Value
FROM georgset, rhexpencar
WHERE georgset.orgs_cd = rhexpencar.orgs_cd
AND georgset.empr_cd = '01'
AND rhexpencar.func_cd = '006112'
AND ((georgset.orgs_dt_final IS NULL and var1 = 'S') or
(georgset.orgs_dt_final IS NOT NULL and var1 = 'G'));
ORDER BY 1
Abrazzz
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Qua, 30 Abr 2008 3:10 pm
- Localização: São Paulo - SP
Na vida devemos fazer três coisas, estudar, estudar e estudar !!!

Select * from <NOME_TABELA>
where EMIS_IND_ENDOSSO = 204
and emis_num_endosso = CASE WHEN 1 <> -1 THEN '2' ELSE EMIS_NUM_ENDOSSO END
and EMIS_EMPRESA = 1
and EMIS_RAMO_ITEM = CASE WHEN 1 <> -1 THEN 18 ELSE EMIS_RAMO_ITEM END
and emis_num_apolice = '1085004466401'
[]'s
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
Ola, boa noite... Estou apanhando aqui igual filho sem pai, preciso fazer um CASE, sem select, exemplo:
Estou criando um ITEM DE APLICACAO, então o resultado irá carregar o item
alguém poderia me ajudar? agradeço
CASE
WHEN :APP_PAGE_ID = 101
THEN '7'
WHEN :APP_PAGE_ID = 102
THEN '999'
ELSE '0'
END case;
alguém poderia me ajudar? agradeço
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Acho que ele quer fazer um IF, ELSIF, ELSIF, ELSIF...
assim:
assim:
IF sales > 50000 THEN
bonus := 1500;
ELSIF sales > 35000 THEN
bonus := 500;
ELSE
bonus := 100;
END IF;
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
Ola, sim, eu utilizei o CASE no exemplo assim, pois foi os testes q fiz, porem não deram certos... mas pode ser IF mesmo, eu so quero é fazer com q dependendo da pagina carregada o ITEM DA APLICAÇÃO seja carregada com um determinado codigo... eu já terei as paginas definidas e pra cada pagina um codigo pro item de aplicacao... tipo:
quero testar quantas paginas eu precisar
IF PAGINA = 101 THEN
'7'
ELSE
IF PAGINA = 102 THEN
'8'
ELSE
IF PAGINA = 103 THEN
'9'
ELSE
IF PAGINA = 104 THEN
'10'
ELSE
'0'
END IF
-
- Rank: Analista Sênior
- Mensagens: 172
- Registrado em: Seg, 24 Out 2016 7:20 pm
Ola, desculpe, não tinha visto a segunda pagina... a dica do DR_GORI deu certo, era o q eu precisava... problema resolvi.. muito obrigado a todos
-
- Rank: Analista Júnior
- Mensagens: 98
- Registrado em: Qui, 02 Ago 2007 3:06 pm
- Localização: sp
Érico Balboa
A pergunta mais cretina é aquela que não é feita
A pergunta mais cretina é aquela que não é feita
Dá pra usar case when sim, desta forma, não sei se atende.
Variavel := CASE
WHEN :APP_PAGE_ID = 101
THEN '7'
WHEN :APP_PAGE_ID = 102
THEN '999'
ELSE '0'
END;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante