当前位置:首页 > 开发 > 数据库 > 正文

数据表纵转横

发表于: 2010-01-26   作者:crabdave   来源:转载   浏览次数:
sql
摘要: 数据表纵转横 方法一: --创建函数与类型 create or replace type str_tab is table of varchar2(32767); create public synonym str_tab for str_tab create or replace function col2row(pv in str_tab) return varchar2

数据表纵转横

方法一:

--创建函数与类型

create or replace type str_tab is table of varchar2(32767);
create public synonym str_tab for str_tab

create or replace function col2row(pv in str_tab) return varchar2
is
  ls varchar2(32767);
begin
  for i in 1..pv.count loop
      ls := ls || pv(i)||',';
  end loop;
  return ls;
end;



select 
       col2row(cast(multiset (select  columnName from tableName) as str_tab)) as myName
                        from dual

select columnName from tableName结果不要太多。

MULTISET 必须和 CASTs 一起使用,MULTISET 将数据集转换为 collection,SQL MULTISET function 和操作 nested tables 的 PL/SQL MULTISET 是完全不同的
SELECT CAST (MULTISET (SELECT field FROM table) AS collection-type)
FROM DUAL;
As with the CAST pseudo-function, MULTISET cannot serve as the target of an INSERT, UPDATE, or DELETE statement.

 

 

方法二:

我们通过 oracle 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果
select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;

 

数据表纵转横

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
前一段时间了解到的,今天有空写下,备忘~ 先来说说横表和纵坐表的概念,先来看看以下两图: 第一张
横表变纵表列子1 横表: 纵表: 中介表: with tb1 as (select '张三' fname, 'A张三' f1, 'B张三' f2
前一段时间了解到的,今天有空写下,备忘~ 先来说说横表和纵坐表的概念,先来看看以下两图: 第一张
前一段时间了解到的,今天有空写下,备忘~ 先来说说横表和纵坐表的概念,先来看看以下两图: 第一张
前一段时间了解到的,今天有空写下,备忘~ 先来说说横表和纵坐表的概念,先来看看以下两图: 第一张
1.需要更改为横表的纵表如下图所示横表要求结构为busi_code为表的各个信息显示字段名称: 2.更改横表
前一段时间了解到的,今天有空写下,备忘~ 先来说说横表和纵坐表的概念,先来看看以下两图: 第一张
SQL代码 /* 在实际使用sql工作中总会碰到将某一列的值放到标题中显示.就是总说的行列转换或者互换.
数据库中 将一张纵表转换为一张横表 数据库纵表数据 转换后 转换代码 select cardid, max(case t.pr
行列互换 /* 在实际使用sql工作中总会碰到将某一列的值放到标题中显示.就是总说的行列转换或者互换.
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号