2016-07-27 25 views
1

我想在'#'字符後面輸入COLUMN_A的子字符串。帶有可選字符的SQL Server子字符串

我用:

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

這工作得很好,當COLUMN_A有一個 '#' 字符。但是在某些行中,如果'#'不在那裏,那麼我會得到空的結果。我嘗試使用ISNULL()來處理這個問題,但沒有運氣!

有關如何處理這個問題的任何建議?

回答

1

使用一個case語句來檢查是否有井號,並返回別的東西:

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