求高手:某表中某字段值为1,2,3 
另一张数据字典表数据为1,name1;
                      2,name2;
                      3,name3;
请问如果查出数据格式如:name1,name2,name3的sql语句呢

解决方案 »

  1.   


    select decode(a.id,1,b.name,null) name1
          ,decode(a.id,2,b.name,null) name2
          ,decode(a.id,3,b.name,null) name3
    from t1 a,t2 b
    where a.id = b.id
      

  2.   

    2个表关联就可以了
    select b.name form a,b where a.ziduan = b.ziduan
      

  3.   

    表Protocal
    字段 Id,ProtocalNo,Bank_Id,Description表Dic_Bank
    字段,Id,NameProtocal.Bank_Id 值为1,2,3 这个值是不固定的,也可能是1或者1,3等等我想要的结果是select ProtocalNo,Bank_Id,Description, BankName from ...BankName 的值为Dic_Bank.Name1,Dic_Bank.Name2,Dic_Bank.Name3 也可能是Dic_Bank.Name1或者Dic_Bank.Name1,Dic_Bank.Name3
      

  4.   

    表Protocal
    字段 Id,ProtocalNo,Bank_Id,Description表Dic_Bank
    字段,Id,NameProtocal.Bank_Id 值为1,2,3 这个值是不固定的,也可能是1或者1,3等等我想要的结果是select ProtocalNo,Bank_Id,Description, BankName from ...BankName 的值为Dic_Bank.Name1,Dic_Bank.Name2,Dic_Bank.Name3 也可能是Dic_Bank.Name1或者Dic_Bank.Name1,Dic_Bank.Name3
      

  5.   

    你这个需求只能用过程来处理了 把Bank_Id中可能包含的值一一分解下来 作关联查询
      

  6.   

    或者请高手指教,关键设计多选字段的表结构,我的表Protocal里面大概有4个多选字段
      

  7.   

    你可以把多选的这个字段 拆开单独建表a,表Protocal与表a是一对多的关系,这样查询显示就比较容易了当然具体是否合理还得看具体需求,后期这些数据要怎么使用
      

  8.   


    --以t1表为基准
    SQL> with t1 as(
      2       select regexp_substr('1,2,3','[^,]+',1,level) col_1
      3       from dual
      4       connect by level<=length('1,2,3')-length(replace('1,2,3',',',''))+1)
      5  ,t2 as(
      6      select 1 col_2,'name1' col_3 from dual union all
      7      select 2,'name2' from dual union all
      8      select 3,'name3' from dual union all
      9      select 4,'name4' from dual)
     10  select wm_concat(t2.col_3)
     11  from t1,t2
     12  where t1.col_1=t2.col_2
     13  /
     
    WM_CONCAT(T2.COL_3)
    --------------------------------------------------------------------------------
    name1,name2,name3