我想把一个表查询或多表嵌套查询的结果与列名同时获得,即把列名作为数据的第一行,请教如何获得。希望不通过复杂的存储过程,因为我这个功能需要一秒钟执行一次,负荷不能太大。感激献策。另外补充,我只知道表名参数,列名都从syscolumns中获得,列名不固定,本来想用union将列名跟数据合并一下,但数据类型跟排序又出了问题。如何才能将列名放在第一行呢?

解决方案 »

  1.   


    嵌套一个子查询,在查询中增加排序字段select col1,col2,...
    from
    (select 1 as px,字段名1,字段名2,...
     union all
     select 2,col1,col2,...
    ) t
    order by px,...
      

  2.   

    如果用UNION ALL连接后,第一条就是第一条,不会改变的,
      

  3.   

    感谢各位,其实我要的是这样的,列名在第一行,数据则按指定的顺序排序。
    我开始全部类型转换成字符了但转换后排序不理想。我尝试嵌套已排序的结果集,在转换,然后在UNION ALL 就得到了想要的结果。
    思路如下,只不过我用的全是参数,谢谢各位select 'ID'AS ID,'时间' UNION all
    select  CAST(ID AS NVARCHAR(50)),CAST(时间 AS NVARCHAR(50))时间 from 
    (select top 100 ID ,CAST(时间 AS NVARCHAR(50))时间 from SAV_原始日志_表 ORDER BY ID deSC) as A