dclare @c varchar(1000)
set @c=''
select @c=@c+kindnum from tab1
select @c as c

解决方案 »

  1.   

    1樓第一行改為:declare @c varchar(1000) 
      

  2.   

    declare @allkinull varchar(8000)
    select @allkinull=isnull(@allkinull,'')+ltrim(kindnum)+','
    from tab1
    select @allkinull 
      

  3.   


    1001,1002表示是一个数据还是两个数据?逗号是分隔符?
    如果是分隔符,可以先用select语句返回查询结果,然后将查询结果粘到EXCEL中,再次复制,转置就OK了。
      

  4.   

    ----------------------------------------------------------------
    -- Author  :DBA_HuangZJ(发粪涂墙)
    -- Date    :2014-04-22 10:28:57
    -- Version:
    --      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
    -- Apr  2 2010 15:48:46 
    -- Copyright (c) Microsoft Corporation
    -- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
    --
    ----------------------------------------------------------------
    --> 测试数据[Table1]
    if object_id('[Table1]') is not null drop table [Table1]
    go 
    create table [Table1]([kindnum] nvarchar(100))
    insert [Table1]
    select 1001 union all
    select 1002 union all
    select 10010008 union all
    select 100100080001 union all
    select 10010009
    --------------生成数据--------------------------
    go
    if object_id('F_Str') is not null
        drop function F_Str
    go
    create function F_Str(@Col1 nvarchar(100))
    returns nvarchar(100)
    as
    begin
        declare @S nvarchar(100)
        select @S=isnull(@S+',','')+[kindnum] from [Table1]-- where Col1=@Col1
        return @S
    end
    go
    Select distinct [kindnum]=dbo.F_Str([kindnum]) from [Table1]
     
    go
    ----------------结果----------------------------
    /* 
    kindnum
    ----------------------------------------------------------------------------------------------------
    1001,1002,10010008,100100080001,10010009
    */