私の前の質問は-新しい列に部分文字列を挿入する
同じ列で実行したい2つのケースがあります。
最初 -
SET [ref_id] = CASE
WHEN CHARINDEX('-', [full_id]) = 4
THEN SUBSTRING([full_id], 1, 3) ELSE NULL
二番目 -
SET [ref_id] = CASE
WHEN CHARINDEX('ZZZ-', [full_id]) = 1
THEN SUBSTRING([full_id], 5, 3) ELSE NULL
私の[full_id]
列のデータ形式は主にですがABC-123D2-45FG67
、一部はすべて数字であるか、接頭辞が付いていますZZZ-
データが数値のみの場合、[ref_id]
列をNULLにします。
データの前にプレフィックスが付いている場合は、ZZZ-
その部分をスキップします。
データがそうではなくZZZ-
、で始まる場合はABC-
、コピーしたいABC
(場合によっては存在AB-1234
し、それはNULLである必要があります)。
私のコードは、2つの文字列が一緒に機能せず、別々に実行すると前のクエリの作業をキャンセルすることを除いて、正常に機能します。
123456
両方を実行して、次のような形式のデータに対してのみNULLSで終わるにはどうすればよいですか?AB-1234
お手伝いありがとう。