Sql server 将sql表行显示为列
我有一个名为Sql server 将sql表行显示为列,sql-server,pivot,Sql Server,Pivot,我有一个名为NewDemo的表 ID Name Condition Value -- ---- --------- ----- 1 Book Amount 90/- 2 Pencil Amount 5/- 3 Eraser Amount 7/- 1 Book Quantity 900 2 Pencil Quantity 280 3 Eraser Quantity 200 但我想
NewDemo
的表
ID Name Condition Value
-- ---- --------- -----
1 Book Amount 90/-
2 Pencil Amount 5/-
3 Eraser Amount 7/-
1 Book Quantity 900
2 Pencil Quantity 280
3 Eraser Quantity 200
但我想显示如下
ID Name Amount Quantity
-- ---- ------ --------
1 Book 90/- 900
2 Pencil 5/- 280
3 Eraser 7/- 200
给我一些解决方案/
谢谢大家你们可以这样做
SELECT A.ID, A.Name, A.Value AS 'Amount', B.Value AS 'Quantity'
FROM (SELECT * FROM NewDemo WHERE Condition = 'Amount') AS A
JOIN (SELECT * FROM NewDemo WHERE Condition = 'Quantity') AS B
ON A.ID = B.ID
在sql server::中尝试以下操作
select * from [dbo].[2]
pivot
(
max(value)
for condition in([amount],[quantity])
)as piv order by id
嗨,我想这对你有帮助
SELECT ID, Name, MAX(DISTINCT CASE WHEN Condition = 'Amount' THEN Value END) AS Amount, MAX(DISTINCT CASE WHEN Condition = 'Quantity' THEN Value END)
AS Quantity
FROM dbo.TESTTABLE
GROUP BY ID, Name
SELECT ID, Name, MAX(DISTINCT CASE WHEN Condition = 'Amount' THEN Value END) AS Amount, MAX(DISTINCT CASE WHEN Condition = 'Quantity' THEN Value END)
AS Quantity
FROM dbo.TESTTABLE
GROUP BY ID, Name