我试图选择一个字符串的第一部分,其中的分隔符并不总是存在。我有以下SUBSTRING
函数,当分隔符存在时效果很好,但是当它不是,即下面的查询
SELECT SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location)) FROM sc
为Tower #1
值生成Tower #1/Room #3
,但如果输入仅为NULL
则为Tower #5
如果分隔符不存在,有没有办法返回完整的字符串?
答案 0 :(得分:5)
只需使用CASE
到select
即可。你可以试试,
SELECT
CASE WHEN CHARINDEX('/', sc.location) > 0 THEN SUBSTRING(sc.location +'/',0, CHARINDEX('/', sc.location))
ELSE sc.location
FROM sc