Jef_Zhang
2016-03-25 01:09
采纳率: 83.3%
浏览 1.5k

oracle行转列问题。纯SQL

oracle中有一张读者表(TableReader),里面有一列保存读者类型(ColReaderTypeIds),存的值是类似(1,2,3)这种,分别对应读者类型表(TableReaderType)中的类型(ReaderTypeId),1,类型1;2,类型2;3,类型3。是三行数据!读者可以有多个类型。TableReaderType中的数据不确定,所以不能用case when。我要在查询TableReader表中的ColReaderTypeIds的时候,将该列显示成名称,而不是ID,应该怎么做?意思就是,ColReaderTypeIds列存的是"1,2,3";显示出来后变成"类型1,类型2,类型3"

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • danielinbiti 2016-03-25 01:31
    已采纳
    类似下面这样
    select 读者名称,wm_sys.wm_concat (ReaderTypeId) from(
     select 读者名称,ReaderTypeId from TableReader,TableReaderType where instr(TableReader.ColReaderTypeIds,ReaderTypeId)>0
     ) group by 读者名称
    
    打赏 评论
  • Jef_Zhang 2016-03-25 01:42

    图片说明

    打赏 评论

相关推荐 更多相似问题