select id from A
结果为
1
2
3
4
我现在想结果为1,2,3,4在sqlserver2005中,这个该怎么写呢?请教,谢谢啦!

解决方案 »

  1.   


    DECLARE @T TABLE
    (
      tid INT
    )
    INSERT INTO @T
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 DECLARE @sql VARCHAR(50) 
    SET @sql=''
    SELECT @sql=@sql+','+CAST(tid AS VARCHAR(4)) FROM @T
    PRINT right(@sql,LEN(@sql)-1)
      

  2.   


    DECLARE @T TABLE
    (
      tid INT
    )
    INSERT INTO @T
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 DECLARE @sql VARCHAR(50) 
    SET @sql=''
    SELECT @sql=@sql+','+CAST(tid AS VARCHAR(4)) FROM @T
    PRINT right(@sql,LEN(@sql)-1)
    /*(所影响的行数为 4 行)1,2,3,4*/这个用不着行列转换
      

  3.   

    create table #Test(id int)
    insert into #Test
    select 1 union all
    select 2 union all
    select 3 union all
    select 4select * from #Testdeclare @Str varchar(100)
    set @Str=''
    select @Str=@Str+','+cast(id as varchar(100)) from #Test
    select stuff(@Str,1,1,'')
    //1,2,3,4
      

  4.   

    完整语句是这样的: select * from b where b.id in (select id from A)我想把括号里的变为1,2,3,4不声明变量可以吗,不然在sql中无法直接运行
      

  5.   

    就这样写
    select * from b where b.id in (select id from A)有什么问题吗?
      

  6.   


    CREATE TABLE #T 
    (
      tid INT
    )INSERT INTO #T
    SELECT 1 UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 DECLARE @sql VARCHAR(50) 
    DECLARE @value VARCHAR(50)
    DECLARE @result VARCHAR(5000)
    SET @sql=''
    SELECT @sql=@sql+','+CAST(tid AS VARCHAR(4)) FROM #T
    PRINT right(@sql,LEN(@sql)-1)
    SELECT @value= '('+right(@sql,LEN(@sql)-1)+')'
    set @result ='SELECT * FROM #T WHERE tid IN '+ @value 
    PRINT @result
    EXEC(@result)
      

  7.   

    因为他查询的就是1,2,3,4啊
    SELECT * FROM #T WHERE tid IN(1,2,3,4)
      

  8.   

    因为他查询的就是1,2,3,4啊
    SELECT * FROM #T WHERE tid IN(1,2,3,4)
      

  9.   

    因为sql语句是
    SELECT * FROM #T WHERE tid IN(1,2,3,4)
    结果当然是1,2,3,4