用技巧简单选择

时间:2013-02-27 08:35:25

标签: sql sql-server sql-server-2008

我需要编写一个将列出所有客户端的选项,但是如果客户端的状态为1或2,那么这就是技巧,它应该在名称前用*标记此客户端。它看起来应该是

  Vasya Pupkin 
* Masha Pupkina

选择看起来像

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

这意味着Masha是活跃的客户。 花了将近2个小时在网上搜索,但找不到任何有用的东西。因为这里有问题。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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

修改 哎哟!为时已晚,穆罕默德回答是正确的