sql - SQL (MS SQL Server) 返回列值作为乘法的结果
问题描述
表如下:
零件编号 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 等。
非常感谢。
解决方案
有了以下假设,您可以使用拆分查询并进行乘法运算。
- 您正在使用 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
推荐阅读
- spring-amqp - ImmediateRequeueAmqpException 似乎不起作用
- c# - 如何使用声纳扫描仪扫描 C# 项目
- node.js - Button Component中的MUI奇怪代码,希望有人能解释一下
- f# - 4.5 版中的阴影
- python - 关于通过 ssh 将 opencv 库安装到树莓派 4 的问题
- php - CakePHP:Bin 蛋糕烘焙表不存在
- reactjs - 如何使用 gatsby 插件将 CSS 更改为 SASS?
- pdf - 如何使用 Apps 脚本访问 Google Drive 上受密码保护的 PDF 文件
- asp.net - 如何将 DataTables 脚本与已填充的表一起使用
- java - 方法“session.createSQLQuery()”是否存在内存泄漏?如何解决?