奇怪的逗号~~~
奇怪的逗号:
use pubs
go
declare @s varchar(8000)
select @s = ', '+ title_id from titles
print @s
结果为:,BU2075
先把逗号赋给字符型变量的话:
use pubs
go
declare @s varchar(8000)
set @s = ', '
select @s =@s+ title_id from titles
print @s
结果为:,PC1035PS1372BU1111PS7777TC4203PS2091PS2106PC9999TC3218PS3333PC8888MC2222BU7832TC7777BU1032MC3021MC3026BU2075
请问为什么?
------解决方案--------------------第一个SQL是取最后一行的title_id,并前置逗号
第二个SQL是取所有title_id的连接在一起,并前置逗号
语句不同,返回结果当然不同
------解决方案--------------------楼上老兄解释的很详细了,第二种执行的方式与你想得方法是不一样的,主要是sql语法与其他的语法不动导致的!
------解决方案--------------------学习
------解决方案--------------------第一句: ', '和title_id中最后一个值连接起来
第二句: ', '和title_id中所有值连接起来
------解决方案--------------------select @s =@s+ title_id from titles
=============
这句其实是一个循环,他执行时,会循环逐条执行记录集
比如表:
title_id
1
2
3
4
=============
第一次时
select @s =@s+ title_id from titles
@s = ', ' + 1
第二次时
@s = @s + 2 既: ', ' + 1 + 2
所以结果是不一样的