这种格式的数据,我只想要将百分数转换为小数有办法嘛各位大神路过帮忙看看

sql.png

SQL Ccc 发布于 2022-12-27 09:22
1min目标场景问卷 立即参与
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-12-27 09:28(编辑于 2022-12-27 10:29)

SqlServer?oracle?mysql?

---------------

SELECT   (CASE WHEN MBLL LIKE '%S%%'  ESCAPE   'S'  THEN CONVERT(NVARCHAR(100),REPLACE(MBLL,'%','')/100) ELSE MBLL  END ) [NEW_]    FROM   TABLE

---------------

with tablea as (

select '80%' [mbll]

union all

select '76.5%' [mbll]

union all

select '80' [mbll]

union all

select '100' [mbll]

union all

select '>50' [mbll]

union all

select '>80%' [mbll]

union all

select '>0.580%' [mbll]

union all

select '>=0.580%' [mbll]

union all

select '<0.5' [mbll]

)

select *,(CASE WHEN MBLL LIKE '%S%%'  ESCAPE   'S'  THEN (CASE WHEN PATINDEX('%[0-9]%',mbll)=1 THEN CONVERT(NVARCHAR(100),CONVERT(decimal(20,6),REPLACE(mbll,'%',''))/100)  ELSE CONCAT(SUBSTRING(mbll,1,PATINDEX('%[0-9]%',mbll)-1) ,CONVERT(NVARCHAR(100),CONVERT(decimal(20,6),REPLACE(SUBSTRING(mbll,PATINDEX('%[0-9]%',mbll),LEN(mbll)),'%',''))/100)) END) ELSE CONVERT(NVARCHAR(100),MBLL) END )  [NEW]

from tablea

image.png

  • 1关注人数
  • 280浏览人数
  • 最后回答于:2022-12-27 10:29
    请选择关闭问题的原因
    确定 取消
    返回顶部