簡體   English   中英

僅將 SQL 中的幾行轉換為列

[英]Convert only few Rows to Columns in SQL

我想在 SQL 中僅將 2 列轉換為具有 6 列的表中的行,如下所示。 可能嗎? 我試過PIVOT ,但它沒有按預期工作。

這是我的桌子:

-------------------------------------------------
| ID |  Contact | DESC_ID | DESCRIPT |  VALUE   |
-------------------------------------------------
| 22 |  55555   |   1     | Name     |  Vijay   |   
| 22 |  55555   |   2     | Country  |  India   |   
| 22 |  55555   |   3     | State    |  Maha    |   
| 22 |  55555   |   4     | Location |  Mumbai  |   
| 22 |  55555   |   5     | Color    |  Brown   |   
-------------------------------------------------

我正在嘗試創建以下結果:

--------------------------------------------------------------------                    
| ID |  Contact |   Name  | Country |   State  |  Location | Color |
--------------------------------------------------------------------
| 22 |  55555   |   Vijay | India   |    Maha  |   Mumbai  | Brown |
--------------------------------------------------------------------

我該如何查詢這個。 可能嗎?

create Table Table1 (ID int, Contact int, DESC_ID int, DESCRIPT varchar(100),  VALUE varchar(100));

insert into Table1(ID,Contact ,DESC_ID,DESCRIPT,VALUE)
values( 22 ,  55555   ,   1     , 'Name'     ,  'Vijay' )     
, (22 ,  55555   ,   2     , 'Country'  ,  'India'      )
,( 22 ,  55555   ,   3     , 'State'    ,  'Maha'       )
, (22 ,  55555   ,   4     , 'Location' ,  'Mumbai'     )
,( 22 ,  55555   ,   5     , 'Color'    ,  'Brown')

select * from 
( 
select ID,Contact,VALUE,DESCRIPT from table1 
) d 
pivot (
max(VALUE) for DESCRIPT in (Name,Country,State,Location,Color) 
) piv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM