日期:2014-05-17  浏览次数:20377 次

一道有难度SQL题^^^^^^^^^^^^^^^^^^^^^^^^^
一道有难度SQL题...


SQL code
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     地址        文本框


上面只是列了一些字段...


------解决方案--------------------
20分。。。。。。。。。。。。


贴个例子自己看着改改吧


SQL code


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 ')

------解决方案--------------------
探讨

20分。。。。。。。。。。。。


贴个例子自己看着改改吧


SQL code


IF NOT OBJECT_ID('Class') IS NULL
DROP TABLE Class
Go
CREATE TABLE Class
(
[Student] NVARCHAR(2) ,
[数学] INT ,
[……