日期:2014-05-17 浏览次数:20533 次
T1 FID VCHAR1 VCHAR2 VCHAR3 VCHAR4 VCHAR5 1 李江 男 读书 11 在哪 T2 FID FTABLE FFieldName FFieldTitle FFieldType 1 T1 VCHAR1 姓名 文本框 2 T1 VCHAR2 性别 下拉框 3 T1 VCHAR3 爱好 多选框 4 T1 VCHAR4 地址 文本框 想要的结果 TT FFieldName FFieldValue FFieldType VCHAR1 李江 文本框 VCHAR2 性别 下拉框 VCHAR3 爱好 多选框 VCHAR4 地址 文本框
IF NOT OBJECT_ID('Class') IS NULL
DROP TABLE Class
Go
CREATE TABLE Class
(
[Student] NVARCHAR(2) ,
[数学] INT ,
[物理] INT ,
[英语] INT ,
[语文] INT
)
INSERT Class
SELECT N'李四', 77, 85, 65, 65
UNION ALL
SELECT N'张三', 87, 90, 82, 78
Go
--2000
DECLARE @s NVARCHAR(4000)
SELECT @s = ISNULL(@s + ' union all ', '') + 'select [Student],[Course]=' + QUOTENAME(Name, '''')--isnull(@s+' union all ','') 去掉字符串@s中第一个union all
+ ',[Score]=' + QUOTENAME(Name) + ' from Class'
FROM syscolumns
WHERE ID = OBJECT_ID('Class')
AND Name NOT IN ( 'Student' ) --排除不转换的列
ORDER BY Colid
EXEC('select * from ('+@s+')t ')
------解决方案--------------------