一道有难度SQL题^^^^^^^^^^^^^^^^^^^^^^^^^
一道有难度SQL题...
T1FID VCHAR1 VCHAR2 VCHAR3 VCHAR4 VCHAR51 李江 男 读书 11 在哪T2FID FTABLE FFieldName FFieldTitle FFieldType1 T1 VCHAR1 姓名 文本框2 T1 VCHAR2 性别 下拉框3 T1 VCHAR3 爱好 多选框4 T1 VCHAR4 地址 文本框想要的结果TTFFieldName FFieldValue FFieldType VCHAR1 李江 文本框 VCHAR2 性别 下拉框 VCHAR3 爱好 多选框 VCHAR4 地址 文本框
IF NOT OBJECT_ID('Class') IS NULL DROP TABLE ClassGoCREATE TABLE Class ( [Student] NVARCHAR(2) , [数学] INT , [物理] INT , [英语] INT , [语文] INT )INSERT Class SELECT N'李四', 77, 85, 65, 65 UNION ALL SELECT N'张三', 87, 90, 82, 78Go--2000DECLARE @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 syscolumnsWHERE ID = OBJECT_ID('Class') AND Name NOT IN ( 'Student' ) --排除不转换的列ORDER BY ColidEXEC('select * from ('+@s+')t ')
[解决办法]