在SQL中仅将少数行转换为列
我只想在一个有6列的表中将2列转换为行,如下所示。可能吗?我试过PIVOT,但它没有按预期工作 这是我的桌子:在SQL中仅将少数行转换为列,sql,sql-server,tsql,pivot,transpose,Sql,Sql Server,Tsql,Pivot,Transpose,我只想在一个有6列的表中将2列转换为行,如下所示。可能吗?我试过PIVOT,但它没有按预期工作 这是我的桌子: ------------------------------------------------- | ID | Contact | DESC_ID | DESCRIPT | VALUE | ------------------------------------------------- | 22 | 55555 | 1 | Name | Vija
-------------------------------------------------
| 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')
请发布您当前的尝试。选择ID、联系人、国家/地区、州、位置、选择值中的颜色、表d中的描述pivot maxVALUE作为ID、联系人、国家/地区、位置中的描述,颜色pivMysql或sql server-mysql中没有pivot。@Akhil.J请使用“编辑”按钮将代码添加到question.ID中,联系人不应位于pivot中。但就像其他人所说的,你的问题,并把你的尝试放在那里。
select * from
(
select ID,Contact,VALUE,DESCRIPT from table1
) d
pivot (
max(VALUE) for DESCRIPT in (Name,Country,State,Location,Color)
) piv