求关于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这样的循环语句去套。。。。。。。 展开
然后执行以下语句
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这样的循环语句去套。。。。。。。 展开
2个回答
展开全部
首先declare @i varchar(8000) 你这里定义了 @i的变量是字符串 不是 数字整型,
在SQL SERVER 中,+ 这个符号的另一个作用就是把字符串给串联起来, 也就是你的@i=@i+a 结果是123,@i=a from [a] 这里你应该有一个条件的才会得到你上面说的结果3。
在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 广告
2024-07-18 广告
在Excel中,使用`VLOOKUP`函数进行单一条件查找非常常见,但`VLOOKUP`本身并不直接支持双重条件。然而,你可以通过一些间接方法实现。一种方法是将两个条件合并为一个标识符(例如,通过连接或串联),然后在另一个区域中查找此标识符...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询