Fórum CASE em SELECT #374088

26/08/2009

0

Olá Amigo,

Como utilizo CASE dentro de um select?

Por ex.: Ao invés de uma das coluna apresentar a sigla ´D´ quero que apresente como ´DIAGONAL´...

Isto estarei implementando dentro de uma view para mostrar na grid do cadastro.

Assim é ideal? Ou fazer isto em modo de execução?


Lenasi

Lenasi

Responder

Posts

26/08/2009

Alex Maia

SELECT
CAMPO1,
CAMPO2,
CASE
WHEN CAMPO3 = ´D´ THEN
´DIAGONAL´
ELSE
´OUTRO´
END AS CAMPO3
FROM
TABELA1


Responder

Gostei + 0

26/08/2009

Fabiano Góes

ex em Firebird:
SELECT

    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E



Responder

Gostei + 0

26/08/2009

Lenasi

[quote:5a0d4de641=´Fabiano Góes´]ex em Firebird:
SELECT

    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E
[/quote:5a0d4de641]

OLÁ AMIGO.
PERFEITO.
FUNCIONOU...

É POSSÍVEL INSERIR O ORDER BY ?
TENTEI MAS NÃO DEU CERTO...


Responder

Gostei + 0

26/08/2009

Lenasi

[quote:1a550d63fd=´Fabiano Góes´]ex em Firebird:
SELECT

    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E
[/quote:1a550d63fd]

Opá, me deparei com um problema...

Tenho um campo que utilizo como GroupCheckBox
e justamente um deste que utilizo o case...

Depois da mudança, o sistema não reconhece mais este campo, digo,
os checkbox não vem mais marcado e quando marco um deles, dá erro...

O que pode ser amigo?


Responder

Gostei + 0

27/08/2009

Osocram

faça assim
SELECT
    E.job_country,
    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E


vc tem q manter o seu campo original se quer editar ele
[quote:a5213f7de9=´Fabiano Góes´]ex em Firebird:
SELECT

    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E


Opá, me deparei com um problema...

Tenho um campo que utilizo como GroupCheckBox
e justamente um deste que utilizo o case...

Depois da mudança, o sistema não reconhece mais este campo, digo,
os checkbox não vem mais marcado e quando marco um deles, dá erro...

O que pode ser amigo?[/quote:a5213f7de9]


Responder

Gostei + 0

27/08/2009

Lenasi

[quote=´osocram´]faça assim
SELECT
    E.job_country,
    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E

vc tem q manter o seu campo original se quer editar ele


OK, FUNCIONOU, Mas ao gravar continua outro erro:

CANNOT UPDATE READY-ON VW_MINHA_TABELA

Para incluir esta view na SqlDataSet e ClientDataSet, é normal como se fosse uma tabela?


Responder

Gostei + 0

27/08/2009

Facc

[quote:2fde0c1fda=´osocram´]faça assim
SELECT
    E.job_country,
    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E

vc tem q manter o seu campo original se quer editar ele
OK, FUNCIONOU, Mas ao gravar continua outro erro: CANNOT UPDATE READY-ON VW_MINHA_TABELA Para incluir esta view na SqlDataSet e ClientDataSet, é normal como se fosse uma tabela?


Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case


Responder

Gostei + 0

27/08/2009

Lenasi

[quote=´lenasi´][quote:408020634d=´osocram´]faça assim[code] Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case



ENTÃO DEVO ASSOCIAR A VIEW SOMENTE NA GRID É ISSO?
DEVO COLOCAR OUTROS COMPONENTES SOMENTE PRA ISSO?


Responder

Gostei + 0

27/08/2009

Osocram

Pode usar select com case e gravar sim.
So que vc tem q configurar quais campos vai ser editavel e qual não vai.
Se estiver usando isso atravez de um SqlQuery, Provider e ClientDataSet. Deve editar isso na no SqlQuery, vc seleciona o campo e vai na propriedade ProviderFlags e deixa tudo false, se tiver a prop Required deixa false tbm. Depios tenha certeza q essa configuração foi replicado p o seu ClientDataSet. Essas propriedade é que vao auxiliar o Provider a montar o Select de Insert ou Alter, então vc deixando false ele não vai usar esses campos e vao servir simplesmente para consulta, por isso que eu disse para manter o campo original e um c case, se precisar alterar altera o Original.

[quote:6d907b42ab=´lenasi´][quote:6d907b42ab=´osocram´]faça assim
SELECT
    E.job_country,
    CASE E.job_country
        WHEN ´USA´ THEN ´ESTADOS UNIDOS DA AMÉRICA´
        WHEN ´England´ THEN ´INGLATERRA´
        ELSE ´CAMPO EM BRANDO´
    END PAIS

  FROM EMPLOYEE E

vc tem q manter o seu campo original se quer editar ele
OK, FUNCIONOU, Mas ao gravar continua outro erro: CANNOT UPDATE READY-ON VW_MINHA_TABELA Para incluir esta view na SqlDataSet e ClientDataSet, é normal como se fosse uma tabela?


Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case[/quote:6d907b42ab]


Responder

Gostei + 0

27/08/2009

Lenasi

[quote=´osocram´]Pode usar select com case e gravar sim.
So que vc tem q configurar quais campos vai ser editavel e qual não vai.
Se estiver usando isso atravez de um SqlQuery, Provider e ClientDataSet. Deve editar isso na no SqlQuery, vc seleciona o campo e vai na propriedade ProviderFlags e deixa tudo false, se tiver a prop Required deixa false tbm. Depios tenha certeza q essa configuração foi replicado p o seu ClientDataSet. Essas propriedade é que vao auxiliar o Provider a montar o Select de Insert ou Alter, então vc deixando false ele não vai usar esses campos e vao servir simplesmente para consulta, por isso que eu disse para manter o campo original e um c case, se precisar alterar altera o Original.

[/code]


FUNCIONOU PARA ALTERAÇÃO, MAS AO TENTAR ALTERAR DEU O MESMO ERRO !!!


Responder

Gostei + 0

27/08/2009

Osocram

Acho que view vc não consegue alterar...


Responder

Gostei + 0

27/08/2009

Lenasi

Acho que view vc não consegue alterar...


NA VERDADE AMIGO, ESTOU UTILIZANDO A VIEW PARA MUDAR O NOME CAMPO NA GRID... SÓ ISTO...
HÁ OUTRA VANTAGEM???? CREIO QUE SIM...
AGORA, HÁ POSSIBILDIADE DE MUDAR O NOME EM TEMPO DE EXECUÇÃO???


Responder

Gostei + 0

27/08/2009

Osocram

Então tenta fazer o select direto na sua tabela e usando case
e ve se assim funciona.

Não gosto muito de usar view, apenas em casos extremos.
[quote:0c1415765c=´osocram´]Acho que view vc não consegue alterar...


NA VERDADE AMIGO, ESTOU UTILIZANDO A VIEW PARA MUDAR O NOME CAMPO NA GRID... SÓ ISTO...
HÁ OUTRA VANTAGEM???? CREIO QUE SIM...
AGORA, HÁ POSSIBILDIADE DE MUDAR O NOME EM TEMPO DE EXECUÇÃO???[/quote:0c1415765c]


Responder

Gostei + 0

27/08/2009

Lenasi

Então tenta fazer o select direto na sua tabela e usando case e ve se assim funciona. Não gosto muito de usar view, apenas em casos extremos.



PERFEITO AMIGO. DEU CERTO...

ONDE MAIS SÃO UTILIZADO AS VIEWS?


Responder

Gostei + 0

27/08/2009

Emerson Nascimento

utilize views para relatórios


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar