表结构如下 
table1
id  name
1   北京
2   上海
要求select name from table1 后返回如下结果,name之间用#隔开name  北京#上海

解决方案 »

  1.   

    declare @name nvarchar(max)
    select @name=isnull(@name,'')+name from table1
    select @name
      

  2.   

    declare @sql varchar(2000)
    set @sql=''
    select @sql=@sql+'#'+[name] from table1
    select stuff(@sql,1,1,'')
      

  3.   

    呵...还有个#
    declare @name nvarchar(max)
    select @name=isnull(@name+'#','')+name from table1
    select @name
      

  4.   


    create table #tb(id int , name varchar(20))
    insert into #tb 
    select
    '1', '北京'
    union select
    '2', '上海'declare @name varchar(100)
    set @name = ''
    select @name =@name+name +'#' from #tb 
    select left(@name,len(@name)-1)
      

  5.   

    CREATE TABLE #table1
    (
    id INT IDENTITY(1,1),
    name VARCHAR(20)
    )INSERT INTO #table1(name)
    VALUES('北京')
    INSERT INTO #table1(name)
    VALUES('上海')SELECT LEFT(t.names,LEN(t.names) - 1)
    FROM (
    SELECT (SELECT name + '#' FROM #table1 FOR XML PATH('')) names
    ) t
    TRUNCATE TABLE #table1
    DROP TABLE #table1