我有一个场景,我需要将表的列转换为行,例如 - 表 - 股票:
ScripName ScripCode Price
-----------------------------------------
20 MICRONS 533022 39
Run Code Online (Sandbox Code Playgroud)
我需要以下面的格式表示表,但我只需要这种表示单行
ColName ColValue
-----------------------------
ScripName 20 MICRONS
ScripCode 533022
Price 39
Run Code Online (Sandbox Code Playgroud)
这样我就可以直接将数据绑定到datalist控件.
Sam*_*ron 11
听起来像你想要UNPIVOT
在线图书样本:
--Create the table and insert values as portrayed in the previous example.
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 int);
GO
INSERT INTO pvt VALUES (1,4,3,5,4,4);
INSERT INTO pvt VALUES (2,4,1,5,5,5);
INSERT INTO pvt VALUES (3,4,3,5,4,4);
INSERT INTO pvt VALUES (4,4,2,5,5,4);
INSERT INTO pvt VALUES (5,5,1,5,5,5);
GO
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt;
GO
Run Code Online (Sandbox Code Playgroud)
返回:
VendorID Employee Orders ---------- ---------- ------ 1 Emp1 4 1 Emp2 3 1 Emp3 5 1 Emp4 4 1 Emp5 4 2 Emp1 4 2 Emp2 1 2 Emp3 5 2 Emp4 5 2 Emp5 5
另见:Unpivot SQL thingie和unpivot 标签
declare @T table (ScripName varchar(50), ScripCode varchar(50), Price int)
insert into @T values ('20 MICRONS', '533022', 39)
select
'ScripName' as ColName,
ScripName as ColValue
from @T
union all
select
'ScripCode' as ColName,
ScripCode as ColValue
from @T
union all
select
'Price' as ColName,
cast(Price as varchar(50)) as ColValue
from @T
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
85383 次 |
最近记录: |