Array
(
)

Condição no SELECT

Rcmsj
   - 17 jan 2005

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 !!!

Marcus.magalhaes
   - 17 jan 2005

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,

Rcmsj
   - 18 jan 2005

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.

Marcus.magalhaes
   - 18 jan 2005

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,

Raserafim
   - 27 fev 2005

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?

Bon Jovi
   - 27 fev 2005

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
ORDER BY SEXO --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
ORDER BY 4 --pelo numero de ordem da coluna[/size:8b02de0f7e]