• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Myth's space
好好学习,不见进步
博客园    首页    新随笔    联系   管理    订阅  订阅

深入理解start with.....connect by (三)静态行转列

使用了一种新的行列转换方法
用过很多的行转列列转行方法,也看过网友总结的行列转换,今天又尝试了一种新的方法.......
看下面的代码
select
---? as SID,
A.T_JJZB_ID AS SecuCode,
NULL AS PUBDATE,
NULL AS InfoSource,
A.FSRQ 
AS EndDate,
NULL AS TYPE_CODE,
DECODE(RN,
1,'债券',2,'股票',3,'货币资金',4,'国债',5,'企业债',6,'金融债',7,'可转债',8,'其它债券',9,'其它资产',10,'买入返售债券',11,'权证',NULL)
AS SecuCategoryCode,
DECODE(RN,
1,A.ZQZSZ,2,A.Gpsz,3,A.HBZJ,4,A.GZ,5,A.QYZ,6,A.JRZ,7,A.KZZ,8,A.Qtsz,9,A.QTZC,10,A.MRFSZQ,11,A.QZSZ,NULL)
AS HoldingVal,
NULL AS PCTOfNAV,
DECODE(RN,
1,A.ZQZSZ_ZSZBL,2,A.Gp_zszbl,3,A.HBZJ_ZSZBL,4,A.GZ_zszbl,5,A.QYZ_zszbl,
6,A.JRZ_zszbl,7,A.KZZ_zszbl,8,A.Qtsz_zszbl,9,A.QTZC_zszbl,10,A.MRFSZQ_zszbl,11,A.QZ_ZSZBL,NULL)
AS PCTOfTotalAsset,
SYSDATE 
AS EntryTime,
SYSDATE 
AS UpdateTime,
A.ZHXGRQ 
AS GroundTime,
'GAZX' AS ResourceID,
A.GUID 
AS RecordID
FROM JJTZZH_ZC A JOIN (
select level rn from dual connect by  level <=11) B
ON A.SCBZ=0 AND A.GKBZ=1 AND DECODE(RN,1,A.ZQZSZ_ZSZBL,2,A.Gp_zszbl,3,A.HBZJ_ZSZBL,4,A.GZ_zszbl,5,A.QYZ_zszbl,
6,A.JRZ_zszbl,7,A.KZZ_zszbl,8,A.Qtsz_zszbl,9,A.QTZC_zszbl,10,A.MRFSZQ_zszbl,11,A.QZ_ZSZBL,NULL) IS NOT NULL
-----AND A.GUID=?


用connect得到要转换的列数,在得到要转换的列,注意值的对应。
posted @ 2009-09-25 15:40  Mr.Myth  阅读(506)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3