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

时间:2015-03-27 17:14:28

标签: sql regex string substring delimiter

我试图选择一个字符串的第一部分,其中的分隔符并不总是存在。我有以下SUBSTRING函数,当分隔符存在时效果很好,但是当它不是,即下面的查询

时,它不会返回任何内容
SELECT SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location)) FROM sc

Tower #1值生成Tower #1/Room #3,但如果输入仅为NULL则为Tower #5

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

1 个答案:

答案 0 :(得分:5)

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

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