比如 表 sheet
结构和数据示例如下:ID    TARGETSTR1     asde
2     jsdahf
3     uew
4     843jge
.      .
.      .
.      .
.      .
我要得到查询结果是:   asdejsdahuew843jge....怎么写存储过程?

解决方案 »

  1.   

    declare @str nvarchar(4000)
    set @str=''
    select @str=@str+TARGETSTR from sheet order by ID
    select @str
      

  2.   

    declare @t table(ID int,TARGETSTR nvarchar(20))
    insert into @t select 1,N'asde'
    insert into @t select 2,N'jsdahf'
    insert into @t select 3,N'uew'
    insert into @t select 4,N'843jge'declare @str nvarchar(4000)
    set @str=''
    select @str=@str+TARGETSTR  from @t order by ID
    select @str as [string]/*
    string
    ----------------------------------
    asdejsdahfuew843jge
    */
      

  3.   

    CREATE PROCEDURE SP_INFO
    AS
    BEGIN
        declare @str nvarchar(4000)
        set @str=''
        select @str=@str+TARGETSTR  from sheet order by ID
        select @str as [string]
    END
    GO
      

  4.   

    --生成测试数据
    create table sheet(ID int,TARGETSTR nvarchar(20))
    insert into sheet select 1,N'asde'
    insert into sheet select 2,N'jsdahf'
    insert into sheet select 3,N'uew'
    insert into sheet select 4,N'843jge'
    go--创建通用存储过程
    CREATE PROCEDURE SP_INFO(
    @tname varchar(40),  --表名
    @cname varchar(40)   --列名
    )
    AS
    BEGIN
        declare @str nvarchar(4000),@sql nvarchar(4000)
        set @str=''
        set @sql=N'select @str=@str+'+@cname+' from '+@tname
        exec sp_executesql @sql,N'@str nvarchar(4000) out',@str out
        select @str as [string]
    END
    go--执行存储过程
    exec SP_INFO 'sheet','TARGETSTR'--输出结果
    /*
    string
    ----------------------------------------
    asdejsdahfuew843jge
    */
    go--删除测试数据
    drop procedure SP_INFO
    drop table sheet
    go
      

  5.   

    declare @str nvarchar(4000)
    set @str=''
    select @str=@str+TARGETSTR from sheet order by ID
    select @str