CREATE TABLE [dbo].(test)
[cid] [varchar](50) NULL,
[mid] [varchar](50) NULL,
[val] [varchar](50) NULL
) ON [PRIMARY]
表格结构(选择*表格测试)
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
有人可以帮忙吗?
答案 0 :(得分:1)
这与负值无关。问题是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
并不接受这些价值观。