String handling is plentiful with little change: the @p_string extension with space at the beginning and at the end.
DECLARE @P_string nvarchar (100), @P_variable nvarchar (100) set @p_variable = ' Action=' set @p_string = ' hello Action=Refer non-action=non-refer ' select substring(substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)),charindex('=',substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))+1,CHARINDEX(' ', substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))-LEN(@P_variable)) set @p_string = ' bye Action=Follow non-action=non-refer ' select substring(substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)),charindex('=',substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))+1,CHARINDEX(' ', substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))-LEN(@P_variable)) set @p_string = ' hello non-action=non-refer Action=compare ' select substring(substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)),charindex('=',substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))+1,CHARINDEX(' ', substring(@p_string, charindex(upper(@P_variable),upper(@P_string))+1, len(@p_string)-len(@p_variable)))-LEN(@P_variable))
source share