-=Érico=- 5 Denunciar post Postado Agosto 1, 2007 Olá a todos, estou com um pequeno problema e gostaria de saber se é possivel fazer isso. Quando se executa um select, primeiro é solucionado a clausula WHERE, para depois fazer as funções dentro dos campos. Gostaria de executar um comando abaixo só que de uma maneira que funcionasse. SELECT (CASE numero WHEN 1 THEN 'Um' WHEN 2 THEN 'Dois' ELSE 'Três' END) numero_f FROM tabela WHERE numero_f = 'Um' Geraria um erro dizendo que o campo numero_f não existe, se eu matenho o nome do campo como numero, na clausula WHERE, eu teria que procurar por '1' ao inves de 'Um'. E eu quero procurar 'Um' e achar registros com o número '1'. Espero que tenha conseguido explicar claramente. Aguardo uma resposta de alguém que possa me ajudar. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
NaPraia 12 Denunciar post Postado Agosto 1, 2007 não entendi muito bem, da forma que você está usando o CASE, não precisa ter um wheree a sintaxe do case está erradaselect (case when numero = 1 then 'UM' else (case when numero = 2 then 'DOIS' else 'TRES' end) end) from tabela Compartilhar este post Link para o post Compartilhar em outros sites
-=Érico=- 5 Denunciar post Postado Agosto 1, 2007 não entendi muito bem, da forma que você está usando o CASE, não precisa ter um wheree a sintaxe do case está erradaselect (case when numero = 1 then 'UM' else (case when numero = 2 then 'DOIS' else 'TRES' end) end) from tabelaNaPraia, A sintaxe não estava errada, só cometi um pequeno erro, desculpe, eu coloquei o termo CASE no lugar no WHEN antes do '2'. Já corrigi. Dessa maneira que você fez que eu nunca ví.como assim não precisa de WHERE por causa do CASE? A função CASE não tem nada a ver com a clausula WHERE.Colocar um Exemplo aqui..tabela1| campo1 | campo2 || 1 | Nome1 || 2 | Nome2 || 3 | Nome3 |Gostaria de fazer um select, obtendo o registro com o campo1 = 1, só que em vez de mostrar 1, quero mostrar 'Um', e na clausula WHERE tb, eu quero digitar "Um", em vez de digitar '1'.Da maneira que eu postei anteriormente.SELECT (CASE campo1 WHEN 1 THEN 'Um' WHEN 2 THEN 'Dois' ELSE 'Três' END) campo1 FROM tabela1 WHERE campo1 = 'Um'Só que fazendo dessa maneira não funciona, porque no select, ele resolve primeiro a clausula WHERE, pra depois fazer o select, então, o comando acima, retornaria vazio. Compartilhar este post Link para o post Compartilhar em outros sites