日期:2014-05-18 浏览次数:20443 次
问题描述: 无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以,当我们在处理下列要求时,会比较麻烦: 有表tb, 如下: id value ----- ------ 1 aa 1 bbe
------解决方案--------------------
或用
declare @s nvarchar(max)
select @s=isnull(@s+';','')+user+':'+phone from table
print @s
------解决方案--------------------
DECLARE @TB TABLE([user] VARCHAR(2), phone VARCHAR(15)) INSERT @TB SELECT 'a', '123456a' UNION ALL SELECT 'b', '123456b' UNION ALL SELECT 'c', '123456c' DECLARE @SQL VARCHAR(100) SET @SQL='' SELECT @SQL=@SQL+[user]+':'+phone FROM @TB SELECT @SQL /* a:123456ab:123456bc:123456c (1 row(s) affected) */
------解决方案--------------------
把所有的行,循环一下。
这样写
declare @sql varchar(8000) set @sql='' declare @id varchar(50) set @id='' declare @name varchar(50) set @name='' while @a>0 ---或用游标,自己看着办 begin --得到@id @name @sql=@sql+','+cast(@id as varchar(50))+','+@name --设置@a的值 end if len(@sql)>0 begin set @sql=right(1,len(@sql)-1) exec('select '+@sql) end