我试图切断某个字符(在本例中为“&”)之后的所有内容,如果没有出现该字符,则获取整个字符串。
select left(@str,isnull(nullif(charindex('&',@str) - 1,-1),len(@str)))
这似乎是一种相当不必要的复杂方法。有更好/更短的方法吗?
这是一个完整的测试用例来表明我在做什么......
declare @str as varchar(255)
set @str = 'abc&def&ghi'
select left(@str,isnull(nullif(charindex('&',@str) - 1,-1),len(@str)))
-- Returns 'abc'
set @str = 'abc'
select left(@str,isnull(nullif(charindex('&',@str) - 1,-1),len(@str)))
-- Returns 'abc'
好吧 - 这是“另一种”方式......
或者 - 你可以简单地总是在字符串的末尾连接'&',如下所示: