SQL Eval Function Arithmetic Expressions
Definition
An arithmetic expression is an expression that results in a numeric value. Try these examples to see how easy it is to resolve an arithmetic expression.
Eval SQL.NET is a complete C# runtime compiler which honor operator precedence and parenthesis.
Using formula & variables
DECLARE @x INT = 2 DECLARE @y INT = 4 DECLARE @z INT = 6 DECLARE @result INT SET @result = SQLNET::New('x*y+z') .ValueInt('x', @x) .ValueInt('y', @y) .ValueInt('z', @z) .EvalInt() -- SELECT 14 SELECT @result as Result
Using formula & table variables
DECLARE @table TABLE ( X INT, Y INT, Z INT ) INSERT INTO @table VALUES ( 2, 4, 6 ), ( 3, 5, 7 ), ( 4, 6, 8 ) -- 14 -- 22 -- 32 DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') SELECT @sqlnet.ValueInt('x', X) .ValueInt('y', Y) .ValueInt('z', Z) .EvalInt() as Result FROM @table
Using table formula & variables
DECLARE @table TABLE
(
Formula VARCHAR(50) ,
X INT ,
Y INT ,
Z INT
)
INSERT INTO @table
VALUES ( 'x*y+z', 2, 4, 6 ),
( 'x+y*z', 2, 4, 6 ),
( '(x+y)*z', 2, 4, 6 )
-- 14
-- 26
-- 36
DECLARE @sqlnet SQLNET = SQLNET::New('')
SELECT @sqlnet.Code(Formula)
.ValueInt('x', X)
.ValueInt('y', Y)
.ValueInt('z', Z).EvalInt() as Result
FROM @table