1
Select Lastname, Firstnme, Sex, 

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

Birthdate From Employee Order by Lastname

これは私のコードですが、caseステートメントはこのようには機能しません。

ありがとう

4

3 に答える 3

4

'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
于 2012-04-22T16:56:14.813 に答える
2

私はあなたが次のようなものが欲しいと信じています:

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

ここでの違いは、Sex = Caseを設定してから、caseステートメントの後にコンマを入れて、Birthdateが別のフィールドであることを認識できるようにする必要があることです。

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

于 2012-04-22T16:55:31.743 に答える
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;

2番目WHENの句を句から除外して、女性以外のものを句に処理CASEさせることもできELSEますが、通常、性別には男性、女性、不明の3つの値があります。上記のスクリプトは3番目の変数を説明し、すべてのレコードを男性、女性、または不明として返します。

于 2016-12-28T20:37:34.197 に答える