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

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

Birthdate From Employee Order by Lastname 

Это мой код, но деловая операция не будет работать так, мотыга, я могу это понять?SQL - как использовать CASE

благодаря

+3

Не должен Пол = F быть сексом = 'F', с кавычками? – DOK

+0

А также, предположительно, вы не используете смарт-цитаты в своем действительном коде? (например, '' '' vs. '''') –

+0

Какую базу данных вы используете? –

ответ

2

Я считаю, что вы хотите что-то вроде:

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

Разница здесь вы должны установить Sex = Case, а затем поставить запятую после сазе, так что знает Дата рождения еще одно поле ,

Это было написано для SQL-сервера, если вы используете MySql или другие РСУБД, ваш пробег может отличаться.

+0

Я думаю, вам нужно закончить CASE «AS [Name]» – Robert

+1

Зависит, если это SQL Server, вы не в соответствии с примером А в этой статье MSDN: http://msdn.microsoft .com/en-us/library/ms181765.aspx – taylonr

+0

+1 спасибо, что я этого не знал. – Robert

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

Вы можете оставить второй WHEN пункт из пункта CASE и просто дайте пункт ELSE обрабатывать все, что не женский, но, как правило, для пола - мужчины, женщины и неизвестны. Вышеприведенный скрипт учитывает третью переменную и возвращает все записи как мужчины, женщины, так и неизвестные.

Смежные вопросы