如果存在分隔符,则选择子字符串否则给出完整字符串

Ada*_*mes 2 regex sql string substring delimiter

我试图用一个并不总是存在的分隔符选择字符串的第一部分.我有以下SUBSTRING功能,当分隔符存在时效果很好,但是当它不是,即下面的查询时不返回任何内容

SELECT SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location)) FROM sc
Run Code Online (Sandbox Code Playgroud)

Tower #1该值的收益率Tower #1/Room #3,但NULL如果输入是正确的Tower #5

如果分隔符不存在,有没有办法返回完整的字符串?

Mah*_*esh 6

只需使用CASETo to select.你可以试试,

SELECT 
     CASE WHEN CHARINDEX('/', sc.location) > 0 THEN SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location))
          ELSE sc.location 
FROM sc
Run Code Online (Sandbox Code Playgroud)