公共配置表
配置ID  配置内容
1        内容1
2        内容2个人配置表
用户ID  配置ID  配置内容
admin    2        内容3
我想查询用户admin配置的时候出现的结果
配置ID   配置内容
1           内容1
2           内容3就是查询出所有配置内容,如果该用户有个人配置,则覆盖公共配置的内容
求大神帮忙
sql

解决方案 »

  1.   

    select case when b.配置内容 is null then a.配置内容 else b.配置内容 end as 配置内容 ,a.配置id 
    from a 
    left join b on a.配置id =b.配置id
    是这样的么
      

  2.   

    SQL> create table pubcfg(id number,content varchar2(10));表已创建。SQL> create table usercfg(userid varchar2(10),id number,content varchar2(10));表已创建。SQL> insert into pubcfg values(1,'content1');已创建 1 行。SQL> insert into pubcfg values(2,'content2');已创建 1 行。SQL> insert into usercfg values('admin',2,'content3');已创建 1 行。SQL> commit;提交完成。SQL> select nvl(b.id,a.id),nvl(b.content,a.content)
      2  from pubcfg a
      3  left join usercfg b
      4  on a.id=b.id
      5  and b.userid='admin';NVL(B.ID,A.ID) NVL(B.CONT
    -------------- ----------
                 2 content3
                 1 content1SQL>