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
中比将全名解析为名字和姓氏要简单得多。。。。。