2013-02-27 55 views
2

我需要寫一個選擇將列出所有的客戶端,但如果客戶端具有狀態1或2,它應該在名稱前用*標記該客戶端。它應該看起來像簡單的選擇與訣竅

Vasya Pupkin 
* Masha Pupkina 

選擇看起來像

select FirstName + ' '+ LastName, Address, DOB 
from Clients 
Order By FirstName 

這意味着瑪莎是活動的客戶端。 花費近2小時在互聯網上搜索,但找不到任何有用的東西。因爲這裏提出的問題。

回答

3

您需要依靠使用CASE structure來檢查狀態字段。

檢查SQL Fiddle

SELECT (CASE 
      WHEN status IN (1, 2) THEN '* ' 
      ELSE '' 
     END) + FirstName + ' '+ LastName as Client_List 
    FROM Clients 
ORDER BY FirstName 

這個功能齊全的代碼樣本數據的數據:

[id] [status] [FirstName] [LastName] 
1  3  Vasya  Pupkin 
2  2  Masha  Pupkina 
3  3  Sasha  Alexeivich 
4  1  Katya  Alexeivna 

結果:

CLIENT_LIST 
* Katya Alexeivna 
* Masha Pupkina 
Sasha Alexeivich 
Vasya Pupkin 

編輯 哎喲!太晚了,muhmud的回答是正確的

+1

Thanx @Yaroslav!我喜歡在歐洲和俄羅斯的時候提問:) – Andrey 2013-02-27 08:54:29

+1

不客氣。阿拉斯加,這是很遠的人。我在圖拉和莫斯科都有家人。 – Yaroslav 2013-02-27 08:56:11

+0

現在是AK的午夜:) – Andrey 2013-02-27 09:05:51

3
select (case when status in (1, 2) then '* ' else '' end) + FirstName + ' '+ LastName, Address, DOB 
from Clients 
Order By FirstName 
+0

太棒了!我試圖賴特案件,但它扔了我一堆錯誤:)! Thanx – Andrey 2013-02-27 08:45:16

+0

如果答案正確,請在投票計數器下查看商標,以便其他人可以看到這是正確且被接受的答案。 – Yaroslav 2013-02-27 08:50:30