SQL循环语句变量怎么表示

如题所述

第1个回答  2016-02-24
例一:使用FOR循环
--------------------------------------------
CREATE PROCEDURE TEST_FOR
LANGUAGE SQL
BEGIN
FOR each_record AS
---cur01 CURSOR FOR
------SELECT * FROM code,salary,city from employee where city="Beijing"
---------DO
------------UPDATE employee
------------SET salary=salary * 1.1
------------WHERE CURRENT OF cur01;
END FOR;
END;

例二:使用LOOP循环
----------------------------------------
CREATE PROCEDURE TEST_LOOP
LANGUAGE SQL
BEGIN
DECLARE code_v char(10);
DECLARE salary_v integer;
DECLARE city_v char(20);
DECLARE C1 CURSOR FOR
---SELECT code,salary,city FROM employee WHERE city="Beijing";
OPEN C1;
loop_label:
LOOP
- FETCH C1 INTO code_v,salary_v,city_v;
--IF SQLCODE=0 THEN
------SET salary_v=salary_v*1.1;
------UPDATE employee SET salary=salary_v
---------WHERE CURRENT OF C1;
--ELSE
------LEAVE loop_label;
--END IF;
END LOOP loop_label;
CLOSE C1;
END;
例三:使用WHILE循环
---------------------------------------
CREATE PROCEDURE TEST_WHILE
LANGUAGE SQL
BEGIN
DECLARE code_v char(10);
DECLARE salary_v integer;
DECLARE city_v char(20);
DECLARE at_end integer;
DECLARE C1 CURSOR FOR
---SELECT code,salary,city FROM employee WHERE city="Beijing";
OPEN C1;
SET at_end=0;
WHILE at_end = 0 DO
--FETCH C1 INTO code_v,salary_v,city_v;
--IF SQLCODE=0 THEN
------SET salary_v=salary_v*1.1;
------UPDATE employee SET salary=salary_v
---------WHERE CURRENT OF C1;
--ELSE
------SET at_end=1;
--END IF;
END WHILE;
CLOSE C1;
END;
例四:使用REPEAT循环
------------------------------------------------
CREATE PROCEDURE TEST_REPEAT
LANGUAGE SQL
BEGIN
DECLARE code_v char(10);
DECLARE salary_v integer;
DECLARE city_v char(20);
DECLARE C1 CURSOR FOR
---SELECT code,salary,city FROM employee WHERE city="Beijing";
OPEN C1;
repeat_label:
REPEAT
--FETCH C1 INTO code_v,salary_v,city_v;
--IF SQLCODE=0 THEN
------SET salary_v=salary_v*1.1;
------UPDATE employee SET salary=salary_v
---------WHERE CURRENT OF C1;
--END IF;
--UNTIL SQLCODE<>0;
END REPEAT repeat_loop;
CLOSE C1;
END;本回答被提问者采纳
第2个回答  2016-02-24
SQL循环语句
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end

SQL字符加变量怎么表达?
字段不能用变量来代替,可以使用动态语句来实现你说的功能。declare @sqlstr varchar(8000)declare @i int set @i=1 while @i<=31 begin set @sqlstr='update 表 set d'+cast(@i as varchar(10))+'=值'exec (@sqlstr)--执行的时候比如@i=1则实际执行的是 update 表 set d1=值 set...

sql写语句如何循环执行10000次
1.定义循环时需要用到的变量并赋值:declare @i int set @uId=1 2.sql语句的循环是需要嵌套在begin,end语句之内的:begin 需要执行的语句。end 3.while语句的语法如下(需要注意,每次循环完成要给变量加1):while @uId<=10000 select * from test where id=10 set @uId=@uId+1 4.完整语句...

SQL循环插入值该怎么写?
再有就是name_name.这个字段我想应该是名字之类的,那你在插入之前一定已经得到这些名字了。这样的话,你把这些名字放入一个数组变量ME[n]里,循环执行:insert into topolink(name_name,...)values (ME[i]...)因为i在循环中自增,这样就历遍了数组,name_name不就一一对应了,因为id会自动自增...

SQL中循环语句
可以用变量的形式来增加,不过你的userid 三位显然不够,因为你要加10000数据,所以要和authnum形式一样,5位才够 下面是一个简单的例子,你可以根据实际需求来改一下。DECLARE @i int DECLARE @strUserId varchar(10)DECLARE @strAuthnum varchar(10)Set @i = 0 WHILE @i < 10000 BEGIN Set ...

SQL存储过程中怎么写循环
1、第一步,编写存储过程的整体结构,定义变量,见下图,转到下面的步骤。2、第二步,完成上述步骤后,定义游标,具体的代码见下图,转到下面的步骤。3、第三步,完成上述步骤后,编写一个for循环,游标for循环开始,然后临时返回变量名,从任意一个开始,使用变量名.列名,最后循环的游标结束,见下图,...

MySQL中SQL变量的使用方法mysql中sql变量
在MySQL中可以使用SET语句来为变量赋值,语法如下:SET variablename = value;其中variablename为变量名称,value为变量的值。3.使用变量 在MySQL中可以通过变量名来引用变量,语法如下:SELECT variablename;其中variablename为变量名称。4.示例代码 下面是一些使用MySQL SQL变量的示例代码。4.1.使用变量作为...

pl\/sql where 后面的字段名是变量 怎么写
可以。。但最好是输入参数(in)或者输入输出参数(inout)因为,如果是在过程中声明的变量你还需要对他赋值,所以干脆从外部输入或者在变量名之前加&符号,这样在语句执行到此处时就会提示你手动输入一个值。select * from table where v_abc = 'abc';这句有错误 应该写成:v_abc:='abc'; --先...

C# MSSQL 查询条件为变量 该如何表达
1、是一个字符串 2、是一个符合Sql语法规范的字符串 就可以可 如果Tianwei是一个变量的名称,string strSel = "select * from UDS_Staff where name='"+Tianwei.ToString()+"'";如果本身就是String型就不转了.但是Sql字符串比对的时候要加单引号.如果Tianwei就是参数而不是参数名,string strSel ...

for in loop在sql中是什么意思
FOR I IN 0..0 LOOP 至END LOOP。; 是循环包裹语句,从0开始到0结束(表示循环只执行一次),第二句的意思是从文件流fp里读取一行,赋值给变量v_STR.然后在第三行变量v_LINE自增1。这是Oracle中的循环代码块,是非常基础的。for循环,in *...* 从什么到什么。比如你的从0到0,0是满足条件...

sql语句中用while循环5次的代码怎么解释
set @n=0 2给n赋初始值0 while(@n<5) 3开始循环,判断n是否小于5 begin print'@n='+convert(varchar(10),@n) 4 将n 的值打印出来 set @n=@n+1 5 n的值等于它本来的值加一。回到第3步 end

相似回答