带有可选字符的SQL Server子字符串

时间:2016-07-27 22:43:48

标签: sql sql-server substring charindex

我希望在'#'之后取COLUMN_A的子字符串。字符。

我用过:

RIGHT(COLUMN_A, (LEN(COLUMN_A) - CHARINDEX('#', COLUMN_A)))

COLUMN_A有一个'#'字符。但在某些行中,如果'#'不存在,然后我得到空的结果。我尝试使用ISNULL()来处理这个问题,但没有运气!

有关如何处理此事的任何建议吗?

1 个答案:

答案 0 :(得分:1)

使用case语句检查是否有井号并返回其他内容:

CASE WHEN CHARINDEX('#',COLUMN_A) = -1 
  THEN COLUMN_A
  ELSE RIGHT(COLUMN_A, (len(COLUMN_A) - CHARINDEX('#',COLUMN_A)))
END