如何在SQL Server 2008 R2中的select语句中编写条件

时间:2014-12-24 08:15:43

标签: sql-server-2008-r2

我的情景是我有下表 -

FullName                 ManufacturingCost
------------------------------------------
Harry Singh Malhotra          $200.00
Harry                         $200.00
Danny                         $200.00
Britany Krout                 $100.00

现在我需要上表中的两列 - fullNameFirstName。我正在使用此查询:

Select 
    fullName, left(fullName, charindex(' ', fullName, 1) - 1) as firstName
from 
    Table1

上述查询中的问题是,在第二行和第三行Firstname作为Null返回,因为charindex在这些行中找不到' '。< / p>

我希望结果为:

    FullName                 FirstName
    -------------------------------------
    Harry Singh Malhotra     Harry
    Harry                    Harry
    Danny                    Danny
    Britany Krout            Britany

有人可以帮我告诉我如何在声明中添加条件

select * from Table11

因为我想检查特定列中每个值的条件。

选择案例不起作用,因为它只需要标量值。

1 个答案:

答案 0 :(得分:2)

使用Case Statement处理FullName,但没有MiddlenameLastName

SELECT fullName,
       First_Name=LEFT(( fullName ), CASE
                                       WHEN Charindex(' ', fullName) = 0 THEN Len(fullName)
                                       ELSE Charindex(' ', fullName)
                                     END)
FROM   Table1 

ParseName技巧也可以,但你的字符串应该最多4个字。

SELECT fullName,
       First_Name=Reverse(Parsename(Replace(Reverse(fullName), ' ', '.'), 1))
FROM   table1