CREATE procedure [dbo].[EvaluateExpression]@Expression as varchar(1000),@Result as varchar(500) outputasBEGIN Declare @TempTable Table (VariableValue varchar(500)) SET @Expression=(Select replace(@Expression,'==','=')) SET @Expression='if (0=1) Then 0 else ' + @Expression SET @Expression = replace(@Expression,'Then','Select') SET @Expression = replace(@Expression,'else','else Select') SET @Expression = replace(@Expression,'Select if','if') Insert into @TempTable exec (@Expression); Select @Result=VariableValue from @TempTable;END
declare @v varchar(1000);declare @formula as varchar(1000)set @formula = 'IF(5=5) THEN IF(5=5) Then 10 ELSE 5'exec [EvaluateExpression] @formula,@Result=@v outputselect @v