SQL Select substring 如果分隔符存在否则给出完整的字符串
SQL Select substring if delimiter exists else give full string
我正在尝试 select 字符串的第一部分带有并不总是存在的定界符。我有下面的 SUBSTRING
函数,当存在定界符时它工作得很好,但当它不存在时 return 没有任何东西,即下面的查询
SELECT SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location)) FROM sc
为值 Tower #1/Room #3
生成 Tower #1
,但如果输入只是 Tower #5
,则生成 NULL
如果分隔符不存在,是否有办法 return 完整字符串?
只需使用 CASE
到 select
。你可以试试 ,
SELECT
CASE WHEN CHARINDEX('/', sc.location) > 0 THEN SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location))
ELSE sc.location END
FROM sc
我正在尝试 select 字符串的第一部分带有并不总是存在的定界符。我有下面的 SUBSTRING
函数,当存在定界符时它工作得很好,但当它不存在时 return 没有任何东西,即下面的查询
SELECT SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location)) FROM sc
为值 Tower #1/Room #3
生成 Tower #1
,但如果输入只是 Tower #5
NULL
如果分隔符不存在,是否有办法 return 完整字符串?
只需使用 CASE
到 select
。你可以试试 ,
SELECT
CASE WHEN CHARINDEX('/', sc.location) > 0 THEN SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location))
ELSE sc.location END
FROM sc