代码之家  ›  专栏  ›  技术社区  ›  Wei Lin

如何在SQL Server中选择someFunction('1*2/2+3')=4

  •  2
  • Wei Lin  · 技术社区  · 6 年前

    我可以用下面的代码获取c中的int结果#

    new DataTable().Compute("1 * 2 / 2 + 3", string.Empty);//result:4
    

    如何在SQL Server中执行此操作?我期待 convert and operation string to int .
    我的解决方案是clr,但没有任何原始的解决方案?

    谢谢。

    2 回复  |  直到 6 年前
        1
  •  2
  •   tarheel    6 年前

    你需要做一些事情。

    1. 使用已有的clr逻辑创建程序集。
    2. 在SQL Server端,创建一个调用程序集的用户定义函数。

    这是UDF的一个示例 documentation :

    CREATE ASSEMBLY FirstUdf FROM 'FirstUdf.dll';  
    GO  
    
    CREATE FUNCTION CountSalesOrderHeader() RETURNS INT   
    AS EXTERNAL NAME FirstUdf.T.ReturnOrderCount;   
    GO  
    
    SELECT dbo.CountSalesOrderHeader();  
    GO  
    
        2
  •  0
  •   cosmin_popescu    6 年前

    就这样写吧

    select 1 * 2 / 2 + 3
    

    enter image description here