以 SQL 为负值的枢轴
Pivot in SQL for negative values
CREATE TABLE [dbo].(test)
[cid] [varchar](50) NULL,
[mid] [varchar](50) NULL,
[val] [varchar](50) NULL
) ON [PRIMARY]
Table 结构(select * 表格测试)
cid mid val
h0609 c01 -213
h0609 c02 -7
h0609 c03 0
h0702 c01 -4
h0702 c04 -3
我需要这种格式的输出
cid c01 c02 c03 c04
h0609 -213 -7 0 NULL
h0702 -4 NULL NULL -3
h1171 NULL NULL -212 -117
h1272 -9 NULL NULL NULL
h1273 6 NULL NULL NULL
我试过的查询(但它给出空值)
SELECT cid, mid,[c01],[c02],[c03],[c04]
FROM [dbo].[test]
PIVOT( max(val)
FOR val IN ([c01],[c02],[c03],[c04]) ) AS P
我得到了这样的输出
cid mid c01 c02 c03 c04
h0609 c01 NULL NULL NULL NULL
h0702 c01 NULL NULL NULL NULL
h1272 c01 NULL NULL NULL NULL
h1273 c01 NULL NULL NULL NULL
我需要这种格式的输出
cid c01 c02 c03 c04
h0609 -213 -7 0 NULL
h0702 -4 NULL NULL -3
h1171 NULL NULL -212 -117
h1272 -9 NULL NULL NULL
h1273 6 NULL NULL NULL
有人能帮忙吗?
这与负值无关。问题是 pivot
:
SELECT cid, mid,[c01],[c02],[c03],[c04]
FROM [dbo].[test]
PIVOT( max(val)
FOR val IN ([c01],[c02],[c03],[c04]) ) AS P
------^
应该是mid
; val
不采用这些值。
CREATE TABLE [dbo].(test)
[cid] [varchar](50) NULL,
[mid] [varchar](50) NULL,
[val] [varchar](50) NULL
) ON [PRIMARY]
Table 结构(select * 表格测试)
cid mid val
h0609 c01 -213
h0609 c02 -7
h0609 c03 0
h0702 c01 -4
h0702 c04 -3
我需要这种格式的输出
cid c01 c02 c03 c04
h0609 -213 -7 0 NULL
h0702 -4 NULL NULL -3
h1171 NULL NULL -212 -117
h1272 -9 NULL NULL NULL
h1273 6 NULL NULL NULL
我试过的查询(但它给出空值)
SELECT cid, mid,[c01],[c02],[c03],[c04]
FROM [dbo].[test]
PIVOT( max(val)
FOR val IN ([c01],[c02],[c03],[c04]) ) AS P
我得到了这样的输出
cid mid c01 c02 c03 c04
h0609 c01 NULL NULL NULL NULL
h0702 c01 NULL NULL NULL NULL
h1272 c01 NULL NULL NULL NULL
h1273 c01 NULL NULL NULL NULL
我需要这种格式的输出
cid c01 c02 c03 c04
h0609 -213 -7 0 NULL
h0702 -4 NULL NULL -3
h1171 NULL NULL -212 -117
h1272 -9 NULL NULL NULL
h1273 6 NULL NULL NULL
有人能帮忙吗?
这与负值无关。问题是 pivot
:
SELECT cid, mid,[c01],[c02],[c03],[c04]
FROM [dbo].[test]
PIVOT( max(val)
FOR val IN ([c01],[c02],[c03],[c04]) ) AS P
------^
应该是mid
; val
不采用这些值。