房天下 > 房天下问答 > 业主生活 > 其他
  • oracle中sql语句中的分组,如何将竖列变横列

    表chu的结构:DANWEI PROD_NAME SHU营业厅 长尾夹 2办公室 长尾夹 3办公室 订书机 2其中,物资分类是不确定的,因为随时可能添加个稿纸什么的,怎样写sql语句让变成一下格式:DANWEI 长尾夹 订书机 更多.....营业厅 2 0 ...办公室 3 2 ...请高手指点迷津。

    提问者:zhy173

    发布于2010-12-24

共1个回答
  • amylovema 丨Lv 0
    create or replace type list_agg as object( total varchar2(4000), static function ODCIAggregateInitialize(sctx IN OUT list_agg) return number, member function ODCIAggregateIterate(self IN OUT list_agg, value IN varchar2) return number, member function ODCIAggregateTerminate(self IN list_agg, returnValue OUT varchar2, flags IN number) return number, member function ODCIAggregateMerge(self IN OUT list_agg, ctx2 IN list_agg) return number);create or replace type body list_agg is static function ODCIAggregateInitialize(sctx IN OUT list_agg) return number is begin sctx := list_agg(null); return ODCIConst.Success; end; member function ODCIAggregateIterate(self IN OUT list_agg, value IN varchar2) return number is begin self.total := self.total || value; return ODCIConst.Success; end; member function ODCIAggregateTerminate(self IN list_agg, returnValue OUT varchar2, flags IN number) return number is begin returnValue := substr(self.total, 2); return ODCIConst.Success; end; member function ODCIAggregateMerge(self IN OUT list_agg, ctx2 IN list_agg) return number is begin self.total := self.total || ctx2.total; return ODCIConst.Success; end;end;CREATE OR REPLACE FUNCTION ColumnToRow(input varchar2 )RETURN varchar2PARALLEL_ENABLE AGGREGATE USING list_agg;select ColumnToRow(','||Tname) from tab where rownum<10;
    +1 2010-12-24 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。