【发布时间】:2018-12-12 14:05:42
【问题描述】:
我有下面的 sql。 where 后面的 AND 语句应该确保名称中确实有第二个空格,例如在中间名/首字母之后。此列中的名称为倒序,Last、First、Middle。我正在尝试获取名字,如果存在的话,它将是第二个位置的名字。我得到了无效的长度参数,不知道为什么,我认为我的 AND 语句会处理它。
样本数据:
Consultant_Contacted
Sample Name Test
Sample Name S
Name S Sample2
预期结果:
Consultant_Last_Name | Consultant_First_Name
Sample | Name
Name | Sample2
我正在通过查找 A.Ordering_pty_name = '' 来处理倒序的名称
WHEN A.Ordering_pty_name = ''
AND (CHARINDEX(' ', A.Consultant_Contacted, CHARINDEX(' ', A.Consultant_Contacted) + 1) + 1) > 0
THEN UPPER(
RTRIM(
LTRIM(
SUBSTRING(
A.Consultant_Contacted
, CHARINDEX(' ', A.Consultant_Contacted, 1)
--, 100
, (
CHARINDEX(
' '
, A.CONSULTANT_CONTACTED
, CHARINDEX(
' '
, A.CONSULTANT_CONTACTED
) + 1
) + 1
) -
(
CHARINDEX(
' '
, A.CONSULTANT_CONTACTED
, 1
)
)
)
)
)
)
【问题讨论】:
-
一些示例数据在这里真的很有帮助。
-
还有预期的结果也别忘了。
标签: sql-server tsql split sql-server-2014