O que está errado no select ?

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
manusud
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 28 Mai 2010 11:33 am
Localização: Campinas - SP
Contato:
Nenhum sucesso na vida compensa o fracasso no lar

Bom dia.

Estou tentando colocar um CASE dentro de um select e não estou conseguindo:

Selecionar tudo

SELECT F.FILIAL, to_char((F.FILIAL)||(F.CHAPA)) as fili, F.CHAPA, F.CDICONTRATADO, TO_CHAR((substr(F.NOME,1,15))||' - '||(F.FUNCAO)) as func, (case F.DEMISSAO_DATA when is null then 'Ativo' when is not null then 'Demitido' end) FROM ADM.FUNCIONARIOS F WHERE (F.FILIAL=any(28, 29, 33, 235, 229, 107)) ORDER BY F.FILIAL, F.CHAPA
Minha versão de banco de dados é o ORACLE 92, e esta consulta estou tentando fazer via ODBC no excel.

grato pela atenção.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

qual erro está exibindo?


da um olhada em um exemplo de case
http://glufke.net/oracle/viewtopic.php?t=12
manusud
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 28 Mai 2010 11:33 am
Localização: Campinas - SP
Contato:
Nenhum sucesso na vida compensa o fracasso no lar

Está dando o seguinte erro:

Erro em tempo de execução 3146.

Lembrando que estou tentando realizar esta consulta pelo excel em VBA.
manusud
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Sex, 28 Mai 2010 11:33 am
Localização: Campinas - SP
Contato:
Nenhum sucesso na vida compensa o fracasso no lar

Pelo link que você enviou percebi que faltou um detalhe na sintaxe, porém ainda continua dando o mesmo erro.

Selecionar tudo

SELECT F.FILIAL, to_char((F.FILIAL)||(F.CHAPA)) as fili, F.CHAPA, F.CDICONTRATADO, TO_CHAR((substr(F.NOME,1,15))||' - '||(F.FUNCAO)) as func, (case F.DEMISSAO_DATA when ='2' then 'Ativo' when ='1' then 'Demitido' end DEMISS) FROM ADM.FUNCIONARIOS F WHERE (F.FILIAL=any(28, 29, 33, 235, 229, 107)) ORDER BY F.FILIAL, F.CHAPA
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

A sintaxe está incorreta, tenta o seguinte:
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Deu algum erro na postagem... :oops:

Selecionar tudo

SELECT f.filial,
       to_char((f.filial) || (f.chapa)) AS fili,
       f.chapa,
       f.cdicontratado,
       to_char((substr(f.nome, 1, 15)) || ' - ' || (f.funcao)) AS func,
       (CASE WHEN f.demissao_data = '2' THEN 'Ativo'
             WHEN f.demissao_data = '1' THEN 'Demitido'
       END demiss)
  FROM adm.funcionarios f
 WHERE (f.filial = ANY(28, 29, 33, 235, 229, 107))
 ORDER BY f.filial, f.chapa
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes