这是因为该查询要求总词数超过两个,这意味着在分析的字符串中至少需要两个空格。
如果要排除的第一个字和得到的第二个字什么,你可以使用类似这样
select ltrim(
substring(
companyname,
charindex(' ', companyname),
len(companyname) - charindex(' ', companyname) + 1
)
);
如果你想要的是第二个字来代替,就可以破解您查询到这个
select ltrim(
substring(companyname,
charindex(' ', companyname),
CHARINDEX(
' ',
ltrim(
SUBSTRING(
companyname + ' fake',
charindex(' ', companyname),
LEN(companyname + ' fake') - charindex(' ', companyname))
)
)
)
)
from pmweb_companies
where companyname = '7x24 Exchange'
编辑
如果我正确理解你的评论,如果字符串只有一个字,该查询应该返回空白。如果是这样的话,你可以使用一个case
语句进行select
select case
when charindex(
' ',
substring(
companyname,
charindex(' ', companyname),
LEN(companyname) - charindex(' ', companyname) + 1
)
) = 0 /* this means there's less than two words */
then '' /* you can place something else here, as you prefer */
else
ltrim(
substring(companyname,
charindex(' ', companyname),
CHARINDEX(
' ',
ltrim(
SUBSTRING(
companyname + ' fake',
charindex(' ', companyname),
LEN(companyname + ' fake') - charindex(' ', companyname))
)
)
)
)
end
from pmweb_companies
where companyname = '7x24 Exchange'
什么是列'companyname'的类型? – Hybris95
列公司名称的数据类型为nvarchar –
某些样本数据如何? –