关于oracle复杂逻辑。。

数据如下

name      aaa     yue

张三        2 .5      4    

张三                      5

李四          1         2

我想通过逻辑将张三yue=5的 aaa字段通过  yue=4 拓展出0.5

case when

大佬们有什么想法吗

FineReport SQL 3333xzx 发布于 2022-10-24 15:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-10-24 15:33(编辑于 2022-10-24 17:36)

表示没有看懂。。到底要做什么。。。

with t as

(select '111.078' col

from dual

union all

select '111.05' col

from dual

)

select t.数据,replace(t.数据,'0','0.') as 处理后 from (

select 

regexp_substr(col, '[^.]+', 1, level) as 数据

from t

connect by level <= regexp_count(col, '.') + 1

and col = prior col

and prior dbms_random.value > 0) t

where t.数据 is not null

image.png

  • 3333xzx 3333xzx(提问者) 把数字拆分开。。2.1 拆成2 和0.1
    2022-10-24 15:34 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 按小数点来拆分成多行?假如数字是99.48,那么就是99与0.48?
    2022-10-24 15:37 
  • 3333xzx 3333xzx(提问者) 回复 CD20160914 对但是前面还有文字 比如 三2.1 拆成 三2 三0.1 放在两个位置
    2022-10-24 15:38 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 这个先用函数截取后。再去列转行。比较麻烦
    2022-10-24 17:10 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 你自己在原始表处理一下。把它小数位第一位不是0的多拼一个0进去。。。我就不模拟了。。类似上面这样的语句。。你看截图
    2022-10-24 17:35 
  • 2关注人数
  • 340浏览人数
  • 最后回答于:2022-10-24 17:36
    请选择关闭问题的原因
    确定 取消
    返回顶部