分享

SQL语句_行转列

 昵称10504424 2013-02-18

表结构示例:

表名:WY_TEST

列:NO      NUMBER(2,0)

        A          VARCHAR2(20)

 

数据:

NO     A

1        作业内容1

2        tool1

3        1

4        作业内容2 

7        作业内容1

8        tool2

9        3

 

规则: 行号除3余1的为作业内容,余2的为工具编号,余3的为次数

要求:生成如下格式

NO      I_WORK               I_TOOL              I_CNT

1          作业内容1            tool1                    1 

2          作业内容2              

3          作业内容3            tool2                    3

 

SQL语句:

SELECT A.NO,MAX(A.I_WORK) I_WORK,MAX(A.I_TOOL) I_TOOL,MAX(A.I_CNT) I_CNT
FROM (
SELECT
CEIL(T.NO/3) NO,
CASE WHEN MOD(T.NO ,3) = 1 THEN T.A ELSE NULL END I_WORK,
CASE WHEN MOD(T.NO ,3) = 2 THEN T.A ELSE NULL END I_TOOL,
CASE WHEN MOD(T.NO ,3) = 0 THEN T.A ELSE NULL END I_CNT
FROM WY_TEST T ) A
GROUP BY A.NO
ORDER BY A.NO

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多