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)