以下のようなフィールドを持つテキスト列があります (小さなサンプルで、多くのバリエーションがあります)。
INSERT INTO #retention1 VALUES ('hello Action=Refer non-action=non-refer')
INSERT INTO #retention1 VALUES ('bye Action=Follow non-action=non-refer')
INSERT INTO #retention1 VALUES ('hello non-action=non-refer Action=compare')
「Action=」の後の単語を見つける必要があります 例 ANSWER : Entry 1: Refer Entry 2: Follow Entry 3: Compare
"Action=" の後のすべての単語が同じ長さである場合、私はそれを行うことができます。残念ながら、すべてのバリエーションの長さは不明です。上記の 3 つのバリエーションだけでなく、アクション後の単語もほぼ常に異なります。
アイデアの提案は大歓迎です。
これは、動作する「Refer」の例にのみ使用したコードです。
BEGIN
DECLARE @P_string nvarchar (100),
@P_variable nvarchar (100)/*,
@P_return_null nvarchar(100) = 'Y'*/
set @p_string = 'hello Action=Refer non-action=non-refer'
set @p_variable = 'Action'
select substring(@p_string, charindex(upper(@P_variable),upper(@P_string)) +len(@p_variable)+1,5) as trying
END;