例如有以下查询语句:-- 数据集合,此处只是举例,具体字段别名或内容形式都不定
select aaa=a.col1, bbb=sum(a.col2), a.col3 
from (
    select col1, col2, col3 from mytable
) a;-- 定义变量
declare
   c1 varchar(50),
   c2 varchar(50),
   c3 varchar(50)-- 此处,我需要能够得到该集合的字段名称赋给相应变量,求相关语句
-- 最终结果应该为 c1="aaa", c2="bbb", c3="col3"

解决方案 »

  1.   

    你是要字段名称,不是字段的值?参考如下:
    --字段名
    select name from syscolumns
    where id = object_id('authors')
    order by name
      

  2.   

    对,我要字段名称,不是字段值
    表“mytable”可以按你的写法去做,但“
    select aaa=a.col1, bbb=sum(a.col2), a.col3  
    from (
      select col1, col2, col3 from mytable
    ) a;

    这个就没法这样做了。
      

  3.   

    你是要动态的?表名不确定?那就拼接SQL动态执行.
      

  4.   

    例如我的表为: (select aaa="fdsafdsa")
    我怎么得到“aaa”这个字段名字
      

  5.   

    对于数据库,视图,临时表可使用动态拼接SQL的方法来获取,对于表变量,暂时想不到方法.
      

  6.   


    例如,select aaa='11111';
    我要的是字段别名的值 “aaa”,因为查询语句是不确定的,别名也是不确定的,上面的别名也可能是bbb,ccc,暂不考虑表变量,对(select aaa='11111';)这个来说我要怎么取得 “aaa”这个值?