17/01/2005

Condição no SELECT

Preciso colocar uma codição if ... se possível ... dentro de um select. O caso é o seguinte:

- No select

SELECT CODIGO,
NOME,
IDADE,
(IF(SEXO=M)
SEXO
)
FROM CLIENTE

Valeuh !!!


Respostas

17/01/2005

Marcus.magalhaes

Boa noite.

Se entendi direito, vc quer algo assim :

SELECT CODIGO,
NOME,
IDADE,
Case SEXO When ´M´ Then ´Masculino´
Else ´Feminino´
End case As
SEXO
)
FROM CLIENTE

Espero ter ajudado.

Att,


Responder Citar

18/01/2005

Rcmsj

quase ... o que preciso é verificar o registro do campo sexo ... se for igual a ´M´ então me traga o seu registro ... e ainda mais ... senão, me traga o registro de outro campo ... campo sexo2 ...

... na verdade isto é apenas um exemplo, o caso verdadeiro é que preciso fazer o select que traga vários campos e entre eles um chamado valor ... e se este campo tiver algum regsitro null ... terá que trazer de um outro campo em outra tabela.


Responder Citar

18/01/2005

Marcus.magalhaes

Boa tarde.

Talvez assim ?

SELECT CODIGO, NOME, IDADE, SEXO
FROM CLIENTE
Where sexo = ´M´
Union
SELECT CODIGO, NOME, IDADE, SEXO2
FROM CLIENTE
Where sexo ´M´

Espero ter ajudado.

Att,


Responder Citar

27/02/2005

Raserafim

tentei utilizar o campo gerado pelo CASE na clausula Order By. Mas não consegui (column unknown).
Como faço para ordenar pela coluna gerada pelo CASE?


Responder Citar

27/02/2005

Bon Jovi

se for SQL Server 2000 ou MSDE 2000:

[size=9:8b02de0f7e]SELECT CODIGO, NOME, IDADE, (CASE SEXO WHEN ´M´ THEN ´MASCULINO´ ELSE ´FEMININO´ END) AS SEXO
FROM CLIENTE
[b:8b02de0f7e]ORDER BY SEXO[/b:8b02de0f7e] --pelo apelido[/size:8b02de0f7e]

ou

[size=9:8b02de0f7e]SELECT CODIGO, NOME, IDADE, (CASE SEXO WHEN ´M´ THEN ´MASCULINO´ ELSE ´FEMININO´ END) AS SEXO
FROM CLIENTE
[b:8b02de0f7e]ORDER BY 4[/b:8b02de0f7e] --pelo numero de ordem da coluna[/size:8b02de0f7e]


Responder Citar