Oraclesql问题

需求:根据从表002中选择的条件,更改表001的值。

具体:表001                                                   表002

id      列1    列2                                        id     列1     列2

1       A        k1                                     1001      A       Q1

2       B        k2                                     1002     B        Q2

3       C        k3                                     1003     C        Q3

4       D        k4                                     1004     U        Q4

条件:string 类型:A,B

结果:

具体:表001                                                   表002

id      列1    列2                                        id     列1     列2

1       A        Q1                                     1001      A       Q1

2       B        Q2                                     1002     B        Q2

3       C        k3                                     1003     C        Q3

4       D        k4                                     1004     U        Q4

查询:

select 001.id ,001.列1,001.列2,b.列2from 001 left join 002 on 001.列1 = 002.列1where b.列1 in (参数)

FineReport 帆软用户FSeepKI7oc 发布于 2023-11-3 15:50 (编辑于 2023-11-3 15:55)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-11-3 15:59(编辑于 2023-11-3 16:22)

不就是你这样的吗?

select 

a.id ,

a.列1,

b.列2 

from 001 a

left join 002 b on a.列1 = b.列1

where a.列1 in ('{参数}')

-----------oracel里面。操作前备份一下表001的数据,先在备份表中测试看!-----------------

UPDATE 表001 t1

SET t1.列2 = (SELECT t2.列2

FROM 表002 t2

WHERE t1.列1 = t2.列1

and t2.列1 in (参数)

)

  • 帆软用户FSeepKI7oc 帆软用户FSeepKI7oc(提问者) 但是我要跟新回数据库呀。这个只是查询。哭了
    2023-11-03 16:05 
  • CD20160914 CD20160914 回复 帆软用户FSeepKI7oc(提问者) 你有测试环境没有??因为更新语句这个一更新错误你就找不回来了
    2023-11-03 16:21 
  • CD20160914 CD20160914 回复 帆软用户FSeepKI7oc(提问者) 看上面更新的语句
    2023-11-03 16:22 
  • 帆软用户FSeepKI7oc 帆软用户FSeepKI7oc(提问者) 回复 CD20160914 感谢大哥~~~,祝福你生活愉快,升职加薪!!!
    2023-11-03 16:38 
最佳回答
1
Z4u3z1Lv6专家互助
发布于2023-11-3 16:03

SELECT T.ID,NVL(T.列3,T.列2) [列2] FROM (

select 001.id ,001.列1,001.列2,b.列2 [列3] from 001 left join 002 on 001.列1 = 002.列1where b.列1 in (参数)

) T

oracle不熟,不保证语法正确

  • 帆软用户FSeepKI7oc 帆软用户FSeepKI7oc(提问者) 不应该用 update 开头吗?
    2023-11-03 16:06 
  • Z4u3z1 Z4u3z1 回复 帆软用户FSeepKI7oc(提问者) 我不知道oracle后面的UPDATE怎么写,上次遇到过类似的,看了一下完全没看懂
    2023-11-03 16:09 
  • 2关注人数
  • 209浏览人数
  • 最后回答于:2023-11-3 16:22
    请选择关闭问题的原因
    确定 取消
    返回顶部