Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 server 如何在SQL Server中使用replace进行计算_Sql Server - Fatal编程技术网

Sql server 如何在SQL Server中使用replace进行计算

Sql server 如何在SQL Server中使用replace进行计算,sql-server,Sql Server,我的问题是这样的: Select Replace(Replace(Replace(Replace(Replace(Formula, 'No1', NoRepetations), 'No2', NoCounts), 'L', L), 'W', WB), 'DH', HD) As FormulaValue, * from MeasurementDetailMasterSKP 我的输出看起来像图片中的第一个表: 您可以看到我的FormulaValue列需要进行数学计算。它应

我的问题是这样的:

Select 
    Replace(Replace(Replace(Replace(Replace(Formula, 'No1', NoRepetations), 'No2', NoCounts), 'L', L), 'W', WB), 'DH', HD) As FormulaValue,  
    * from MeasurementDetailMasterSKP  
我的输出看起来像图片中的第一个表:

您可以看到我的
FormulaValue
列需要进行数学计算。它应该看起来像第二列的表格:

基本上我有一个列名公式。在公式列中,我存储了用于计算的实际公式。我用Replace,用实际值替换公式中的所有变量。它正在被成功地替换。但不是为我做计算。只是把公式表示为赋值。但在我的例子中,我只需要sql server的计算结果


请在这方面帮助我,

您正在寻找的是EVAL()函数。但是MSSQL中没有(本机)这样的函数

你可以试试这个,但只能做一些“实验”


给出数据样本和样本结果。你能详细说明你想要得到的结果吗?你好,欢迎来到Stack Overflow。由于这是您的第一个问题,请阅读关于如何提问的最佳实践-好的问题可以让其他成员快速理解您的问题,从而让他们专注于解决问题,而不是花费过多的时间理解问题。注意如何创建MCVE示例:
--DROP TABLE MDM_SKP;

CREATE TABLE MDM_SKP
(
ID int    ,
Formula varchar (100),
NoRepetations NUMERIC(6,2),
NoCounts NUMERIC(6,2),
L NUMERIC(8,4),
WB NUMERIC(8,4),
HD NUMERIC(8,4)
);
Insert Into MDM_SKP
Values(0, 'No1*No2*L*W*DH', 1,1, 1,1,1)
, (1, 'No1*No2*L*W*DH', 1,2, 4,2,3)
      ;

    DECLARE @sql_comm AS VARCHAR(MAX);    
    SET @sql_comm=''
    Select @sql_comm=@sql_comm + 'SELECT '+ CAST(ID AS VARCHAR(10)) + ' AS ID,'+ Replace(Replace(Replace(Replace(Replace(Formula, 'No1', NoRepetations), 'No2', NoCounts), 'L', L), 'W', WB), 'DH', HD) +' AS FV' + ' UNION ALL ' 
    from MDM_SKP       
    SET  @sql_comm=LEFT(@sql_comm, LEN(@sql_comm)-9)

    EXEC (@sql_comm)