请问一个复合语句查询,谢谢

flyskytoday 2016-02-26 02:26:23
表1(createUser和updataUser对应表2中的userId)
sn createUser updataUser
1 1 2
2 3
3 3
4 2 5

表2
userId userName
1 张三
2 李四
3 王五

现在我想查询表1,并且想把查询出来结果变为如下(表2中有userId对应就替换,没有就不修改)

sn createUser updataUser
1 张三 李四
2 王五
3 王五
4 李四 5

...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Selected. 2016-02-26
  • 打赏
  • 举报
回复
select a.sn,nvl(b.username,a.createuser) as createuser,nvl(c.username,a.updateuser) as updateuser from tb1 a,tb2 b,tb2 c where a.createuser=b.userid(+) and a.updateuser=c.userid(+);
ORAClE SE 2016-02-26
  • 打赏
  • 举报
回复
表关联不就行了
z123zjf 2016-02-26
  • 打赏
  • 举报
回复
select sn, nvl((select username from 表2 where userid=createUser),createUser) createUser, nvl((select username from 表2 where userid=updataUser),updataUser) updataUser from 表1
flyskytoday 2016-02-26
  • 打赏
  • 举报
回复
我也晕。。。,就简单一条语句,还没想出来
z123zjf 2016-02-26
  • 打赏
  • 举报
回复
不对,用标量子查询吧。。。。
z123zjf 2016-02-26
  • 打赏
  • 举报
回复
decode(表1.createuser,表2.userid,表2.username,表1.createuser)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧