--- 表
declare @T table( I int identity(1,1), V nvarchar(50) )
insert into @T select 'A'
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100);set @I = '';--- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)--- 这里打印 print @I 结果是: A,B,C,D,E
--- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮。
declare @T table( I int identity(1,1), V nvarchar(50) )
insert into @T select 'A'
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100);set @I = '';--- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)--- 这里打印 print @I 结果是: A,B,C,D,E
--- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮。
解决方案 »
- SQL Server 2005中一条记录总长度不能大于8086吗?
- 面试问题,关于存储过程,求救
- 表名要求以@打头,在建工具(PD或Erwin)中如何实现?
- 用sql语句算出某年的春节阳历月份
- 请红星的朋友,帮我看看如何建立这两个表的一对多关系.(代码以为你写好)
- 如果表的字段是一个变量,select语句该怎么写??
- *************我的SQL这么慢!!!,高分送上!
- 在SQL Server log 中有许多这样的错误但我的数据库可以正常运行,奇怪的是这个错误每一个小时出现一次。如何解决?
- 寻找SQL SERVER的系统存储过程?
- 为什么 我写的删除触发器影响行数是( 影响行数4)与影响行数1
- 删除角色、删除数据库用户的问题
- 很长时间不写sql了,忘了,求一查询语句。
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100)
select @i=isnull(@i+',','')+V from @t
select @i
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100)
select @i=isnull(@i+',','')+V from @t
select @i
/*
A,B,C,D,E(1 個資料列受到影響)
*/
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100)
select @i=isnull(@i+',','')+V from @t
select ''''+@i+''''
/*
'A,B,C,D,E'(1 個資料列受到影響)
*/
declare @T table( I int identity(1,1), V nvarchar(50) ) insert into @T select 'A'
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100)
SELECT @I=ISNULL(@I+',','')+v FROM @T
SELECT @I --- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)
--- 这里打印 print @I 结果是: A,B,C,D,E
--- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮
/*
----------------------------------------------------------------------------------------------------
A,B,C,D,E(1 行受影响)*/
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E'
declare @I nvarchar(4000)set @I = ''select @I = @I + ',' + V
from @Tselect stuff(@I,1,1,'')
---------------
A,B,C,D,E
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100)
select @i=isnull(@i+',','')+V from @t
select @i
数据源
a
b
c
d
e
结果
a,b,c,d,e
*/create table tb(col varchar(20))
insert tb values ('a')
insert tb values ('b')
insert tb values ('c')
insert tb values ('d')
insert tb values ('e')
go--方法一
declare @sql varchar(1000)
set @sql = ''
select @sql = @sql + t.col + ',' from (select col from tb) as t
set @sql='select result = ''' + left(@sql , len(@sql) - 1) + ''''
exec(@sql)
/*
result
----------
a,b,c,d,e,
*/--方法二
declare @output varchar(8000)
select @output = coalesce(@output + ',' , '') + col from tb
print @output
/*
a,b,c,d,e
*/drop table tb
declare @T table( I int identity(1,1), V nvarchar(50) )insert into @T select 'A'
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E'declare @I varchar(100)
select @i=isnull(@i+',','')+V from @t
select @i--- 这里写算法。(所写字符最短的100分,字符数不包括空格和分号)
--- 这里打印 print @I 结果是: A,B,C,D,E
--- 注意:不能偷懒直接赋值 @I = 'A,B,C,D,E',那是赖皮。
insert into @T select 'B'
insert into @T select 'C'
insert into @T select 'D'
insert into @T select 'E' declare @I nvarchar(100);set @I = '';
select @i=@i+','+V from @t
select @i
SELECT TOP 1 * FROM @T ORDER BY I DESC