try:
declare @str varchar(8000)
set @str='Select '
select @str=@str+','+[code] from TableA 
set @str=right(@str,len(@str)-1) + ' from TableA '
Exec(@s)

解决方案 »

  1.   

    declare @ varchar(8000)
    set @=''
    select @=@+','+code from tablea
    select right(@,len(@)-1)
      

  2.   

    最少代码:
    declare @ varchar(8000) set @='' select @=@+','+code from tablea select right(@,len(@)-1)
      

  3.   

    create table TableA(code char(3))
    insert TableA values('A01')
    insert TableA values('A02')
    insert TableA values('A03')
    insert TableA values('A04')
    insert TableA values('A05')
    insert TableA values('A06')
    insert TableA values('A07')declare @str varchar(8000)
    set @str=''
    select @str=@str+','+[code] from TableA 
    set @str='select ''' + right(@str,len(@str)-1) + ''''
    Exec(@str)                            
    --------------------------- 
    A01,A02,A03,A04,A05,A06,A07
      

  4.   

    declare @s varchar(8000)
    set @s=''
    select @s=@s+code+',' from tablea
    select left(@s,len(@s)-1)
      

  5.   

    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+[code] from TableA 
    set @str=right(@str,len(@str)-1)
    select @str
      

  6.   

    create table TableA(code char(3))
    insert TableA values('A01')
    insert TableA values('A02')
    insert TableA values('A03')
    insert TableA values('A04')
    insert TableA values('A05')
    insert TableA values('A06')
    insert TableA values('A07')
    declare @ varchar(8000) 
    set @='' 
    select @=@+','+code from tablea 
    select ''''+right(@,len(@)-1)+''''
                                                                                    
    'A01,A02,A03,A04,A05,A06,A07'(所影响的行数为 1 行)
      

  7.   

    有没有办法能用一句SQL就写出来,
    不用变量!!
      

  8.   

    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+[code] from TableA 
    set @str='select ''' + right(@str,len(@str)-1) + ''''
    Exec(@str)
      

  9.   

    如果你是想在前台的query里用declare @ varchar(8000) set @='' select @=@+','+code from tablea select right(@,len(@)-1) a你把它当一句看,直接open就可以打开。列名是a
    这应该是最少的了,应为这样效率也应该是最好的。
      

  10.   

    declare @ varchar(8000) set @='' select @=@+','+code from tablea select right(@,len(@)-1)
      

  11.   

    再少一个字符:declare @ varchar(8000) set @='' select @=@+code+',' from tablea select left(@,len(@)-1) a
      

  12.   

    再少三个字符:
    declare @ varchar(8000)set @=''select @=@+code+','from tablea select left(@,len(@)-1)
      

  13.   

    另解(不用set):
    declare @ varchar(8000)select @=isNull(@,'')+code+','from tablea select left(@,len(@)-1)
      

  14.   

    如果每次用isnull效率呢? 你不加列名前台怎么取呢?
      

  15.   

    哈哈!最少代码:select 'A01,A02,A03,A04,A05,A06,A07...'