首页 > 解决方案 > SQL (MS SQL Server) 返回列值作为乘法的结果

问题描述

我在 SQL 中有一个如下所示的表: 在此处输入图像描述

表如下:

零件编号 b5 b6 b7
一个 3*38 4*38 5*38
B 4*1100 8*1100 15*1100

b5、b6、b7 列当前是 nvarchar。我可以检查如何使用乘法值将此列转换为 int 吗?例如,如果列 b5=3*38 我想返回 114 等。

非常感谢。

标签: sqlmultiplication

解决方案


有了以下假设,您可以使用拆分查询并进行乘法运算。

  • 您正在使用 sql server
  • 列中只有乘法
  • 乘法中只有两个值
  • 所以最终,你只是a*b在列

您可以使用以下查询:

Select partno, 
       PARSENAME(REPLACE(b5,'*','.'),2) * PARSENAME(REPLACE(b5,'*','.'),1) as b5_res,
       PARSENAME(REPLACE(b6,'*','.'),2) * PARSENAME(REPLACE(b6,'*','.'),1) as b6_res,
       PARSENAME(REPLACE(b7,'*','.'),2) * PARSENAME(REPLACE(b7,'*','.'),1) as b7_res
From your_table t

推荐阅读