sql-server - 将字符串 = '1 1/4' 更改为 '1.2500'

标签 sql-server

声明 @Dimension = '1 1/4' varchar(20)

我想将 Dimension = '1 1/4' 更改为 Dimension = '1.2500'。不知道怎么分割 一个 varchar 变成 2 个 varchar 并更改一部分,然后重新组合成一个 varchar

UPDATE VF_CasINV_Cost
   SET @Dimension = CASE

        when (@Dimension like '%1/4') then
        (left(@Dimension, charindex(' ', @Dimension, 1) - 1) *
        (substring(@Dimension, 1 + charindex(' ', @Dimension, 1), len(@Dimension)))

           end
where @Dimension like '%1/4'

如果知道如何解析分数并将其即时重新转换为小数,那就太好了

最佳答案

declare @x varchar(100)
select @x = '15 3/165'
select 
    convert(int, substring(@x, 1, charindex(' ', @x))) + (
        convert(decimal(12,4), substring(@x, charindex(' ', @x) + 1, charindex('/', @x) - charindex(' ', @x) - 1)) /
        convert(decimal(12,4), substring(@x, charindex('/', @x) + 1, len(@x) - charindex('/', @x)))
    )

关于sql-server - 将字符串 = '1 1/4' 更改为 '1.2500',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6900323/

相关文章:

c# - 异常 : Ambiguous column name

c# - 将字符串数据库值与两个以上的词进行比较

sql-server - SQL Server 创建包含不同或分组依据的 View 索引

c# - OLEDB 安全异常

c# - 遍历数据库表的记录集

php - 查询失败(使用 mssql_query() 和 php)

javascript - 并行运行 Express 服务和 Angular 6 应用程序

sql-server - EXECUTE AS USER 对数据库中请求的用户 dbo 失败

c# - 如何在 Entity Framework 中使用条件进行快速 GroupBy 查询

mysql - MS SQL - MySQL - Openquery 中文字符导入为 '?'