関数を使用して、値が「/」で構成されている場合に値の部分文字列を取得しようとしていますRIGHT
が、値に数値を追加すると機能しませんCHARINDEX
。なしでのみ。
コードのサンプルを次に示します。
SELECT CASE
WHEN
CHARINDEX('/',REPLACE(ISNULL(d.target_grade,'NA'), 'N/A', 'NA')) = 0
THEN
REPLACE(ISNULL(d.target_grade,'NA'),'N/A','NA')
ELSE
RIGHT(d.target_grade, CHARINDEX('/',REPLACE(ISNULL(d.target_grade,'NA'), 'N/A', 'NA'))+1)
END as target_grade
FROM tbl --etc.
これは、例えば
target_grade
-------------
C/D
これでも返ってくるはず
target_grade
-------------
D
+1
ただし、を削除すると、RIGHT
関数は正常に機能します
target_grade
-------------
/D
ここで何が間違っていますか?私のロジックに欠陥がありますか?