help with select ...

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc

Poston Thu, 27 Jul 2006 11:18 am

Good morning, I need to modify the sql below. I have a table named ESTRUTURA_ORGANIZACIONAL, where, among other attributes, it has an acronym and a UNIDADE_SUPERIOR. This upper unit is an id of another estrutura_organizacional.

q I need to do is to check if the message begins with \"SI\". If her start, I need to do another select passing UNIDADE_SUPERIOR as the id of estrutura_organizacional. And if she doesn't start with \"SI\", I get the value of the structure in question.

Can anyone help me do this???

Code: Select all
select distinct
           f2.nome as nomeChefe,
           eo.sigla siglaEO,
           eo.nome nomeEO,
           eo.nom_tipo_logradouro tipo,
           eo.nom_logradouro logradouro,
           eo.numero numeroEO,
           eo.nom_bairro bairro,
           eo.nom_distrito_povoado distrito,
           lo.nome municipio,     
           uf.sigla uf,
           eo.cep cep,
           (eo.cod_tipo_complemento1||eo.des_complemento1|| '             '||eo.cod_tipo_complemento2||eo.des_complemento2||'  '||
           eo.cod_tipo_complemento3||eo.des_complemento3||'             '||eo.cod_tipo_complemento4||eo.des_complemento4||'  '||
           eo.cod_tipo_complemento5||eo.des_complemento5|| '             '||eo.cod_tipo_complemento6||eo.des_complemento6)  complemento
from funcionario f1, funcionario f2, papel_colaborador pc, ufw_papel u,
        estrutura_organizacional eo, localidade lo, uf
where ( f1.id_est_organizacional = eo.identificador) and
          (eo.sigla = pc.sigla_grupo_trabalho_colab) and
          (u.sigla_dominio (+) = pc.sigla_dominio_papel) and
          (u.sigla (+) = pc.sigla_papel) and
          (u.sigla = 'CHF_UNID') and
          (f2.identificacao_cpf = substr(pc.login_usuario_colab,5,11)) and
          (eo.id_localidade = lo.identificador) and
          (lo.id_uf = uf.identificador) and
          (f1.identificacao_cpf = :pLogin) and
          rownum = 1
Location: BH

Poston Thu, 27 Jul 2006 12:41 pm

Hello vivigrieco.

For this case I think you can use CASE because within the clause WHEN can do select see example below:
Code: Select all
select case
         when (1=2) then
           (select 1 from dual)
           (select 2 from dual)
from dual
Location: Campo Grande - MS

Thiago Bourscheidt
Analista de Sistemas

  • See also
    Last Post

      Return to SQL

      Who is online

      Users browsing this forum: No registered users and 2 guests