Sql server 如何在SQL Server中选择函数('1*2/2+3')=4

Sql server 如何在SQL Server中选择函数('1*2/2+3')=4,sql-server,Sql Server,我可以用下面的代码在C中得到int结果 new DataTable().Compute("1 * 2 / 2 + 3", string.Empty);//result:4 如何在SQL Server中执行此操作?我希望将转换和操作字符串转换为int。 我的解决方案是CLR,但没有任何原始解决方案 谢谢 照原样写就行了 select 1 * 2 / 2 + 3 你需要做几件事 使用已有的CLR逻辑创建程序集。 在SQL Server端,创建一个调用程序集的用户定义函数。 这是一个UDF在以下方

我可以用下面的代码在C中得到int结果

new DataTable().Compute("1 * 2 / 2 + 3", string.Empty);//result:4
如何在SQL Server中执行此操作?我希望将转换和操作字符串转换为int。 我的解决方案是CLR,但没有任何原始解决方案

谢谢

照原样写就行了

select 1 * 2 / 2 + 3

你需要做几件事

使用已有的CLR逻辑创建程序集。 在SQL Server端,创建一个调用程序集的用户定义函数。 这是一个UDF在以下方面的示例:


我希望选择某个函数'1*2/2+3'到4而不是选择1*2/2+3,这是不同的。创建该函数,然后传递参数您是说您已经在CLR中编写了SOM函数,并且希望能够从SQL Server调用它吗?是@tarheel这是最后一次尝试您必须创建CLR的程序集dll,和SQL Server中相应的UDF来调用程序集。我将从以下SQL Server文档开始。谢谢,看来我别无选择。你可以在下面回答这个问题,我接受你的答案。为什么你想用SQL来解析字符串并将其计算成任意的数学表达式?为什么要用SQL构建计算器?数据库用于存储和检索数据。此外,所有DataTable.Compute所做的都是在DataTable中创建一个等价物。您的示例是可行的,但这并不是该方法的目的。
CREATE ASSEMBLY FirstUdf FROM 'FirstUdf.dll';  
GO  

CREATE FUNCTION CountSalesOrderHeader() RETURNS INT   
AS EXTERNAL NAME FirstUdf.T.ReturnOrderCount;   
GO  

SELECT dbo.CountSalesOrderHeader();  
GO