遍历表中数据
时间:2011-11-08
来源:互联网
作者: Jimsx 发布时间: 2011-11-08
declare @id int select @id=min(id) from tb while exists(select 1 from tb where id>@id) begin --此处对id为@id的行进行处理 set @id=@id+1 end
作者: qianjin036a 发布时间: 2011-11-08
不用游标的话,用while怎么遍历表中每一列的数据
啊!
每一列数据?
应该是每一行数据吧~~~~~~
作者: qianjin036a 发布时间: 2011-11-08
每一行的话可以用变量来做。
作者: fredrickhu 发布时间: 2011-11-08
作者: Jimsx 发布时间: 2011-11-08
select col1 from tb union all select col2 from tb ...
作者: ssp2009 发布时间: 2011-11-08
每一列的数据都要遍历出来,因为要与另一个表中的数据比较
哥们,还是每一列数据?
列名不知道?
作者: qianjin036a 发布时间: 2011-11-08
--while,continue,break用法 declare @i int set @i=1 while @i<20 begin set @i=@i+1 if @i<=19 continue print @i end declare @i int set @i=1 while @i<20 begin if @i=19 break print @i set @i=@i+1 end
作者: fredrickhu 发布时间: 2011-11-08
每一列的数据都要遍历出来,因为要与另一个表中的数据比较
结合系统表 动态拼接?
作者: fredrickhu 发布时间: 2011-11-08
不同的版本号对应的数据可能有些列不同,所以要比较两张表(根据不同版本号)的数据是否一致
不一致的遍历出来
作者: Jimsx 发布时间: 2011-11-08
SQL code
select col1 from tb
union all
select col2 from tb
...
或许就是这个?
作者: fredrickhu 发布时间: 2011-11-08
引用 4 楼 jimsx 的回复:
每一列的数据都要遍历出来,因为要与另一个表中的数据比较
哥们,还是每一列数据?
列名不知道?
作者: Jimsx 发布时间: 2011-11-08
因为我要比较先后不同的版本的数据是否一致
引用 5 楼 ssp2009 的回复:
SQL code
select col1 from tb
union all
select col2 from tb
...
或许就是这个?
作者: Jimsx 发布时间: 2011-11-08
比如说我有一个更变表,表中 有一个版本号字段(可能包含几个版本)
不同的版本号对应的数据可能有些列不同,所以要比较两张表(根据不同版本号)的数据是否一致
不一致的遍历出来
建议把你实际要做什么详细说出来,以便我们帮你,不然,既浪费大家的时间,也浪费你的宝贵时间.
作者: qianjin036a 发布时间: 2011-11-08
id,code,name,address,banben
1,'001','jim','asd',1
经过修改之后变成了
id,code,name,address,banben
1,'001','Tom','asd',2
现在要做的就是遍历这两条数据那个列修改了
作者: Jimsx 发布时间: 2011-11-08
比如说我有一条数据
id,code,name,address,banben
1,'001','jim','asd',1
经过修改之后变成了
id,code,name,address,banben
1,'001','Tom','asd',2
现在要做的就是遍历这两条数据那个列修改了
作者: Jimsx 发布时间: 2011-11-08
比如说我有一条数据
id,code,name,address,banben
1,'001','jim','asd',1
经过修改之后变成了
id,code,name,address,banben
1,'001','Tom','asd',2
现在要做的就是遍历这两条数据那个列修改了
你这个修改是在之前那条记录里直接修改还是说在另一张表里有存放修改的记录。
作者: AcHerat 发布时间: 2011-11-08
补充一点,是根据版本号来比较
引用 14 楼 jimsx 的回复:
比如说我有一条数据
id,code,name,address,banben
1,'001','jim','asd',1
经过修改之后变成了
id,code,name,address,banben
1,'001','Tom','asd',2
现在要做的就是遍历这两条数据那个列修改了
可是你给的两条数据banben一个是1一个是2,本身就被修改了还怎么用版本号判断。
作者: AcHerat 发布时间: 2011-11-08
--两个表的话你可以用case when来判断,原表是 tb 修改后的表记录在 ta select a.id,a.code, (case when a.name = b.name then 0 else 1 end) [name], (case when a.address = b.address then 0 else 1 end) [address], (case when a.banben = b.banben then 0 else 1 end) [banben] from tb a join ta b on a.id = b.id -- 1 表示修改 0 表示未被修改
作者: AcHerat 发布时间: 2011-11-08
补充一点,是根据版本号来比较
引用 14 楼 jimsx 的回复:
比如说我有一条数据
id,code,name,address,banben
1,'001','jim','asd',1
经过修改之后变成了
id,code,name,address,banben
1,'001','Tom','asd',2
现在要做的就是遍历这两条数据那个列修改了
你的数据都已经修改了,如果没有原表数据,我怎么知道你改了呢?
如果版本号不为1就是改了,那直接
select * from tb where banben>1
不就行了?
作者: qianjin036a 发布时间: 2011-11-08
新的数据有另一张表存放
作者: Jimsx 发布时间: 2011-11-08
原先的数据有记录,
新的数据有另一张表存放
参照18楼的方法,楼主可以按自己的要求去修改,差不多就是给特定的几列做个判断。
作者: AcHerat 发布时间: 2011-11-08
原先的数据有记录,
新的数据有另一张表存放
下面查询中,tb 是你用的表,tb1是保存原数据的表
SQL code
select a.*,b.banben as oldbanben from tb a inner join tb1 b on a.id=b.id and a.banben<>b.banben
作者: qianjin036a 发布时间: 2011-11-08
declare @n varchar(1000)='' select @n=@n+char(13)+字段 from 表 print @n
作者: q465897859 发布时间: 2011-11-08
作者: zlp321002 发布时间: 2011-11-08
select * from tb where id=@id
只是后面取数据时处理就行了。
作者: jinfengyiye 发布时间: 2011-11-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28