在oracle数据库中,有一个表,有三列,A B C,有三行数据,现在要求写一个sql,把第一列变成第一行,
2个回答
展开全部
这是oracle的列转行问题 可以使用oracle的一个函数 行转列组合函数实现 也可以使用decode函数、case when函数实现 再有就是用临时表实现。。。。
追问
大哥别光说啊,我要知道函数怎么写不就不问了么,麻烦你写个例子啊
追答
对你问题的理解:
CREATE TABLE TEST_TAB(A VARCHAR2(10),A_VALUE NUMBER,B VARCHAR2(10),B_VALUE NUMBER,C VARCHAR2(10),C_VALUE NUMBER);
INSERT INTO TEST_TAB VALUES('语文','90','数学','68','政治','24');
INSERT INTO TEST_TAB VALUES('语文','70','数学','98','政治','84');
INSERT INTO TEST_TAB VALUES('语文','45','数学','78','政治','96');
COMMIT;
解决方案:
CREATE TABLE TEST_TAB_COL(T_NAME VARCHAR2(10),T_COL VARCHAR2(10));
INSERT ALL /*+APPEND*/
INTO TEST_TAB_COL
VALUES
(A, A_VALUE) INTO TEST_TAB_COL
VALUES
(B, B_VALUE) INTO TEST_TAB_COL
VALUES
(C, C_VALUE)
SELECT T.A, T.A_VALUE, T.B, T.B_VALUE, T.C, T.C_VALUE FROM TEST_TAB T
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询