Trafodion 行列转换
来源:互联网 发布:用php写99乘法表 编辑:程序博客网 时间:2024/06/05 03:11
Trafodion中提供一个函数叫做group_concat,用于把多列转成一行,具体语法请参考官方手册 http://trafodion.incubator.apache.org/docs/sql_reference/index.html#group_concat_function
下面是自己作的一个小试验测试group_concat基本功能,
--Test group_concat functiondrop table if exists employee;create table employee (empno int not null,attr char(20) not null,value char(20),primary key (empno, attr));insert into employee values(1,'name','Kevin');insert into employee values(2,'name','Eason');insert into employee values(3,'name','Hank');insert into employee values(1,'address','Address A');insert into employee values(2,'address','Address B');insert into employee values(3,'address','Address C');insert into employee values(1,'title','Junior Engineer');insert into employee values(2,'title','Senior Engineer');insert into employee values(3,'title','Architecture');cqd mode_special_4 'on';select * from employee order by empno,attr;select empno, trim(substr(k_v from position('name' in k_v)+20 for 20)) as name, trim(substr(k_v from position('address' in k_v)+20 for 20)) as address, trim(substr(k_v from position('title' in k_v)+20 for 20)) as title from (select empno, group_concat(attr||value order by attr separator '') as k_v from employee group by empno) as foo;
运行结果如下,
SQL>select * from employee order by empno,attr;EMPNO ATTR VALUE----------- -------------------- -------------------- 1 address Address A 1 name Kevin 1 title Junior Engineer 2 address Address B 2 name Eason 2 title Senior Engineer 3 address Address C 3 name Hank 3 title Architecture--- 9 row(s) selected.SQL>select empno, trim(substr(k_v from position('name' in k_v)+20 for 20)) as name, trim(substr(k_v from position('address' in k_v)+20 for 20)) as address, trim(substr(k_v from position('title' in k_v)+20 for 20)) as title from (select empno, group_concat(attr||value order by attr separator '') as k_v from employee group by empno) as foo;EMPNO NAME ADDRESS TITLE----------- -------------------- -------------------- -------------------- 1 Kevin Address A Junior Engineer 2 Eason Address B Senior Engineer 3 Hank Address C Architecture--- 3 row(s) selected.
1 0
- Trafodion 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 行列转换
- 创建一个数组,数组中有三个对象
- php使用traits实现代码复用、多继承
- Minimum Inversion Number (单点更新 线段树 )
- Codeforces Round #395 (Div. 2)(ABCD)
- Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)
- Trafodion 行列转换
- ActiveMQ的消息过滤器(六)
- 转-10 个Redis 建议/技巧
- Android BlueDroid分析: OSI中的HashMap的实现
- DOM (文档对象模型(Document Object Model))
- js小功能:定时器之滑动的ul
- 空闲时间学一个Linux命令(16)—— which命令
- Android 动画--> 图片切换效果
- c++,vector的[]和at区别