這是因爲該查詢要求總詞數超過兩個,這意味着在分析的字符串中至少需要兩個空格。
如果要排除的第一個字和得到的第二個字什麼,你可以使用類似這樣
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 –
某些樣本數據如何? –