gpt4 book ai didi

sql-server - 要计算为数字的字符串表达式

转载 作者:行者123 更新时间:2023-12-02 16:05:23 24 4
gpt4 key购买 nike

我需要编写一个 TSQL 用户定义函数,它将接受一个字符串并返回一个数字。

我将调用像 dbo.EvaluateExpression('10*4.5*0.5') 这样的函数,应该返回数字 22.5

谁能帮我写一下这个函数EvaluateExpression

目前我正在使用我需要避免的 CLR 函数。

编辑1

我知道这可以使用存储过程来完成,但我想在某些语句中调用此函数,例如:select 10* dbo.EvaluateExpression('10*4.5*0.5')

此外,我还有大约 400,000 个这样的公式需要评估。

编辑2

我知道我们可以使用函数内部的 osql.exe 来完成此操作,如所解释的 here 。但由于权限设置,我也无法使用它。

最佳答案

我认为这在用户定义的函数中是不可能的。

您可以在存储过程中执行此操作,例如:

declare @calc varchar(max)
set @calc = '10*4.5*0.5'

declare @sql nvarchar(max)
declare @result float
set @sql = N'set @result = ' + @calc
exec sp_executesql @sql, N'@result float output', @result out
select @result

但是动态 SQL,如 execsp_executesql,在用户定义的函数中是不允许的。

关于sql-server - 要计算为数字的字符串表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com