2013-02-27 54 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