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 完整字符串?

只需使用 CASEselect。你可以试试 ,

SELECT 
     CASE WHEN CHARINDEX('/', sc.location) > 0 THEN SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location))
          ELSE sc.location END
FROM sc