求关于sql server中的变量语句解释

比如有张表a,表a中有一个字段a,表a中只有三行数据,其对应的三行中的字段a分别是1、2和3然后执行以下语句declare@ivarchar(8000)set@i=''s... 比如有张表a,表a中有一个字段a,表a中只有三行数据,其对应的三行中的字段a分别是1、2和3
然后执行以下语句
declare @i varchar(8000)
set @i=''
select @i=@i+a from [a]
print @i

得出的结果是123

我不明白为什么是得出这样的结果,假如把@i=a from [a],得到的结果就是3,想请教一下是不是”@i=@i+“这一块是不是有把表中筛选出的所有内容都能拼接起来的效果,其原理是怎样的?

我其实对sql不太熟,希望各位高手来详细讲解一下,谢谢!
其实我想知道的是为什么”select @i=@i+XXXXXX“会有这种逐行累加的效果呢?我又没用什么while....begin....end这样的循环语句去套。。。。。。。
展开
 我来答
jiewukk
2014-11-18 · TA获得超过3207个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:820万
展开全部
首先declare @i varchar(8000) 你这里定义了 @i的变量是字符串 不是 数字整型,
在SQL SERVER 中,+ 这个符号的另一个作用就是把字符串给串联起来, 也就是你的@i=@i+a 结果是123,@i=a from [a] 这里你应该有一个条件的才会得到你上面说的结果3。
追问
其实我想知道的是为什么”select @i=@i+XXXXXX“会有这种逐行累加的效果呢?我又没用什么while....begin....end这样的循环语句去套。。。。。。。
追答
SQL 自己查询 时候 结果也是1行1行的出来,出来的第一行结果@i 是1,然后显示第二行符合条件的这个时候,因为你的@i=@i+1 虽有第二行的时候就是1+2,依次遍历完所有符合数据的行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
在Excel中,使用`VLOOKUP`函数进行单一条件查找非常常见,但`VLOOKUP`本身并不直接支持双重条件。然而,你可以通过一些间接方法实现。一种方法是将两个条件合并为一个标识符(例如,通过连接或串联),然后在另一个区域中查找此标识符... 点击进入详情页
本回答由TableDI提供
Sino_Ting
2014-11-18 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:100%
帮助的人:76.2万
展开全部
确实是把表中筛选出的所有内容都能拼接起来。它是逐行累加到变量上,这种语句我经常用。
追问
其实我想知道的是为什么”select @i=@i+XXXXXX“会有这种逐行累加的效果呢?我又没用什么while....begin....end这样的循环语句去套。。。。。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式