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

山姆

我的情况是我有下表-

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找不到' '

我想要的结果是:

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

有人可以帮助我让我知道如何在语句中添加条件

select * from Table11

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

Select case不起作用,因为它仅采用标量值。

普雷迪普

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 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章