2014-03-03 29 views
2

我試圖計算字符串'5-22/5'而沒有獲取子字符串並找到運算符等在SQL中。如何在sql中計算算法字符串

我algorythmic字符串= @Diamvarcharvalue'5-22/5'

所需的結果= 2我會需要這個結果評價,分爲可變

我已經嘗試了許多不同的方法得到結果

exec('select ' + @Diam)返回值爲@result變量類型float定義在上面。

例如:

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 

但是我得到的各種編譯錯誤我想不通的。

在此先感謝任何提示/技巧/答案。

回答

3

嘗試這樣的事情...

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 
+0

外觀極好,您的快速反應感謝 –