把一列數據拼接成一個字符串比較簡單:
declare @test varchar(500)set @test='';select @test=@test+name+',' from personselect @test
但是如果數據中有重復選項,想去掉重復的就比較繞彎了。
declare @test varchar(500)set @test='';select distinct @test=@test+name+',' from personselect @test
加distinct是不行的,我在sql server 2008 版本測試起碼是不行的,只顯示了第一行的數據。
繞彎一下:
declare @test varchar(500)set @test='';with cte as(select distinct name+',' as namefrom person)select @test=@test+name from cte select @test
其實這個思路下,用臨時表,表變量什么的都可以,但是用CTE比較簡潔??磥砉帽肀磉_式(CTE)有時候挺有用的。
新聞熱點
疑難解答