Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql中计算算法字符串_Sql_Sql Server - Fatal编程技术网

如何在sql中计算算法字符串

如何在sql中计算算法字符串,sql,sql-server,Sql,Sql Server,我试图计算字符串'5-22/5',而不获取子字符串并在sql中查找运算符等 我的算法字符串=@Diam是一个varchar,其值为'5-22/5' 期望结果=2我需要将此结果计算为一个变量 我尝试了许多不同的方法来获得成功 exec('select'+@Diam)将值返回到上面定义的float类型的@result变量 例如: DECLARE @result float DECLARE @Diam varchar(50) @Diam = 'select @x = ' + @Diam decl

我试图计算字符串
'5-22/5'
,而不获取子字符串并在sql中查找运算符等

我的算法字符串=
@Diam
是一个
varchar
,其
值为
'5-22/5'

期望结果=2我需要将此结果计算为一个变量

我尝试了许多不同的方法来获得成功

exec('select'+@Diam)
将值返回到上面定义的float类型的
@result
变量

例如:

DECLARE @result float
DECLARE @Diam varchar(50)

@Diam = 'select @x = ' + @Diam 

declare @S nvarchar(max) = @Diam 
declare @xx int
set @xx = 0
exec sp_executesql @S, N'@x int out', @xx out
select @xx
然而,我得到了各种各样的编译错误,我不能弄清楚


提前感谢您提供的任何提示/提示/答案。

试试这样的方法

DECLARE @result float;
DECLARE @Diam NVARCHAR(50);
DECLARE @S NVARCHAR(max);


SET @Diam = '5-(22/5)';

SET @S = N'SELECT @result = (' + @Diam + ')';

PRINT @S
exec sp_executesql @S
                  , N'@result float OUTPUT'
                  , @result OUTPUT
select @result