sql语句怎么逐条读取一个表中的数据?
用“游标”即可,语法如下:
delcare c1 cursor for //c1为游标名
select a from table
open c1
while 1=1 begin
fetch a into @a1 //@a1是变量,这句作用是每一次都把每一行的a赋给变量@a1
if @@sqlcode = 2 begin//游标结束
break
end
.......//你的逻辑
end
1,INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以除了插入源表Table1的字段外,还可以插入常量。
2,SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
高级查询如下:
A:UNION运算符
UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
B: EXCEPT运算符
EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
//定义游标
delcare c1 cursor for //c1为游标名
select a from table
open c1
while 1=1 begin
fetch a into @a1 //@a1是变量,这句作用是每一次都把每一行的a赋给变量@a1
if @@sqlcode = 2 begin//游标结束
break
end
建立一个游标,
declare 游标名 cursor
for select * from 表名
open 游标名
fetch next from 游标名