sql - 计算 nVarchar 的值

标签 sql sql-server sql-server-2014

我有一个名为 transactionstable,其中有一个 columnrate 数据类型 nvarchar的值rate类似于1/2250

我正在寻找一个查询,如果我运行该查询,我应该得到答案 0.0004

类似下面的内容

Select cast(rate as int) as rate from transactions

我正在寻找的输出是 0.0004 但现在我得到的是 invalid conversion from nvarchar to int

谢谢。

最佳答案

试试这个

create table #tmpTable (rate varchar(10))
insert into #tmpTable values
('1'),('1/2250'),('1.04'),('1/4')

select case CHARINDEX('/', rate)
       when 0 then cast(rate as real) --if there's no division sign, then take number as it is
       else cast(SUBSTRING(rate, 1, CHARINDEX('/', rate) - 1) as real) / 
            cast(SUBSTRING(rate, CHARINDEX('/', rate) + 1,LEN(rate)) as real)
       end
from #tmpTable

关于sql - 计算 nVarchar 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182190/

相关文章:

c# - Asp.NET MVC 应用程序上的 MySQLRoleProvider 错误但仅使用 SQLServer

sql - 如何用双单引号搜索字符串(sql)

sql - SQL查询未返回正确的日期范围

mysql - 检查表中已有值的问题

c# - 如何使用 Entity Framework 获取列的最大值?

sql - 如何在SQL Server中将列值相乘?

sql-server - TRY_CAST 不是可识别的内置函数名称

sql-server - 我可以在 SQL Server 2014 中使用正则表达式捕获组吗?

mysql - SQL - 使用表格找出出版商每本书有多少种类型

mysql - 我如何退回按城市销售的最大产品?