Sql server 2008 r2 如何在SQLServer2008R2中的select语句中编写条件

Sql server 2008 r2 如何在SQLServer2008R2中的select语句中编写条件,sql-server-2008-r2,Sql Server 2008 R2,我的情况是,我有下表- FullName ManufacturingCost ------------------------------------------ Harry Singh Malhotra $200.00 Harry $200.00 Danny $200.00 Britany Krout $100.00

我的情况是,我有下表-

FullName                 ManufacturingCost
------------------------------------------
Harry Singh Malhotra          $200.00
Harry                         $200.00
Danny                         $200.00
Britany Krout                 $100.00
现在我需要上表中的两列-
fullName
FirstName
。我正在使用此查询:

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语句
处理
全名
,不使用
中间名
姓氏

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 

@sam-Gald它帮助检查parsename答案真正的解决方案是将这些东西(
FirstName
LastName
)存储为单独的列-将它们添加到一个
FullName
中比将全名解析为名字和姓氏要简单得多。。。。。