CASE em SELECT
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?
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
Curtidas 0
Respostas
Alex Maia
26/08/2009
SELECT
CAMPO1,
CAMPO2,
CASE
WHEN CAMPO3 = ´D´ THEN
´DIAGONAL´
ELSE
´OUTRO´
END AS CAMPO3
FROM
TABELA1
CAMPO1,
CAMPO2,
CASE
WHEN CAMPO3 = ´D´ THEN
´DIAGONAL´
ELSE
´OUTRO´
END AS CAMPO3
FROM
TABELA1
GOSTEI 0
Fabiano Góes
26/08/2009
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
GOSTEI 0
Lenasi
26/08/2009
[quote:5a0d4de641=´Fabiano Góes´]ex em Firebird:
[/quote:5a0d4de641]
OLÁ AMIGO.
PERFEITO.
FUNCIONOU...
É POSSÍVEL INSERIR O ORDER BY ?
TENTEI MAS NÃO DEU CERTO...
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
OLÁ AMIGO.
PERFEITO.
FUNCIONOU...
É POSSÍVEL INSERIR O ORDER BY ?
TENTEI MAS NÃO DEU CERTO...
GOSTEI 0
Lenasi
26/08/2009
[quote:1a550d63fd=´Fabiano Góes´]ex em Firebird:
[/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?
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?
GOSTEI 0
Osocram
26/08/2009
faça assim
vc tem q manter o seu campo original se quer editar ele
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]
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]
GOSTEI 0
Lenasi
26/08/2009
[quote=´osocram´]faça assim
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?
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?
GOSTEI 0
Facc
26/08/2009
[quote:2fde0c1fda=´osocram´]faça assim
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?
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
Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case
GOSTEI 0
Lenasi
26/08/2009
[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?
GOSTEI 0
Osocram
26/08/2009
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.
Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case[/quote:6d907b42ab]
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
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?
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
Amigo a VIEW funciona apenas para exibir dados... para gravar vc tem que usar um ´select´ limpo, ou seja, sem Select Case[/quote:6d907b42ab]
GOSTEI 0
Lenasi
26/08/2009
[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 !!!
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 !!!
GOSTEI 0
Osocram
26/08/2009
Acho que view vc não consegue alterar...
GOSTEI 0
Lenasi
26/08/2009
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???
GOSTEI 0
Osocram
26/08/2009
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.
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]
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]
GOSTEI 0
Lenasi
26/08/2009
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?
GOSTEI 0
Emerson Nascimento
26/08/2009
utilize views para relatórios
GOSTEI 0
Lenasi
26/08/2009
utilize views para relatórios
OBRIGADO.
GOSTEI 0