2012-04-22 2 views
1
Select Lastname, Firstnme, Sex, 

Case When Sex = F Then ‘female’ Else ‘male’ End 

Birthdate From Employee Order by Lastname 

これは私のコードですが、このようにcase文は動作しません。ここでの違いは、あなたがセックス=ケースを設定する必要があり、それは生年月日が別のフィールドであることを知っているので、その後、case文の後にコンマを入れてあるSQLの使用方法

select Lastname, Firstnme, 
Sex = Case 
    When Sex = 'F' Then ‘female’ 
    Else ‘male’ 
    End, 
Birthdate 
From Employee Order by Lastname 

:私はあなたのような何かをしたいと考えてい

おかげ

+3

性別= F be Sex = 'F'、引用符付きではありませんか? – DOK

+0

また、実際のコードでスマート引用符を使用していないと思われますか? (すなわち '' '' '' '' '') –

+0

どのデータベースを使用していますか? –

答えて

2

これはSQLサーバー用に書かれたもので、MySqlやその他のRDBMSを使用している場合は、マイレージが異なる場合があります。引用符で

+0

CASEを "AS [Name]"で終了する必要があると思います – Robert

+1

SQL Serverの場合は、このMSDNの記事の例Aに従ってください。http://msdn.microsoft .com/ja-us/library/ms181765.aspx – taylonr

+0

+1ありがとうございました。 – Robert

4

のPut 'F':

Select Lastname, Firstnme, Sex, 
Case 
When Sex = 'F' Then 'female' 
When Sex = 'M' Then 'male' 
ELSE 'Unknown' 
End as Sex_string, Birthdate 
From Employee Order by Lastname 

それとも

Select Lastname, Firstnme, Sex, 
Case Sex 
When 'F' Then 'female' 
When 'M' Then 'male' 
ELSE 'Unknown' 
End as Sex_string, Birthdate 
From Employee Order by Lastname 
0
SELECT firstname, lastname, birthdate, sex, 
    CASE sex 
     WHEN 'F' THEN 'Female' 
     WHEN 'M' THEN 'Male' 
     ELSE 'Unknown' 
    END AS gender 
FROM EMPLOYEE 
ORDER BY lastname; 

あなたはCASE句のうちの二WHEN句を残して、ちょうどELSE句はその何かを処理させることができ女性ではありませんが、通常、男性、女性、未知の3つの性別の値があります。上記のスクリプトは3番目の変数を扱い、すべてのレコードを男性、女性、または不明のいずれかとして返します。

関連する問題