Ser*_*dia 4 t-sql sql-server cross-apply sql-server-2012
我想使用CROSS APPLY来UNPIVOT多列.
列CGL, CPL, EO应该变为Coverage Type,值CGL, CPL, EO应该在列中Premium,值CGLTria,CPLTria,EOTria应该在列中Tria Premium
declare @TestDate table (
QuoteGUID varchar(8000),
CGL money,
CGLTria money,
CPL money,
CPLTria money,
EO money,
EOTria money
)
INSERT INTO @TestDate (QuoteGUID, CGL, CGLTria, CPL, CPLTria, EO, EOTria)
VALUES ('2D62B895-92B7-4A76-86AF-00138C5C8540', 2000, 160, 674, 54, 341, 0),
('BE7F9483-174F-4238-8931-00D09F99F398', 0, 0, 3238, 259, 0, 0),
('BECFB9D8-D668-4C06-9971-0108A15E1EC2', 0, 0, 0, 0, 0, 0)
SELECT * FROM @TestDate
Run Code Online (Sandbox Code Playgroud)
输出:
结果应该是这样的:
一个快速简便的方法是 VALUES
例
select A.QuoteGUID
,B.*
From @TestDate A
Cross Apply ( values ('CGL',CGL,CGLTria)
,('CPL',CPL,CPLTria)
,('EO',EO,EOTria)
) B (CoverageType,Premium,TiraPremium)
Run Code Online (Sandbox Code Playgroud)
返回
| 归档时间: |
|
| 查看次数: |
2390 次 |
| 最近记录: |