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