首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

奇怪的逗号~解决思路

2012-03-14 
奇怪的逗号~~~奇怪的逗号:usepubsgodeclare@svarchar(8000)select@s , +title_idfromtitlesprint@s结果为

奇怪的逗号~~~
奇怪的逗号:
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

所以结果是不一样的

热点排行