当前位置:首页 » 编程语言 » sql循环语句两个变量
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql循环语句两个变量

发布时间: 2022-06-03 15:07:28

A. sql 循环语句

可以使用游标。MS SQL语句如下:


--定义一个接收数值及一个累加数值的临时变量
DECLARE@levelINT,
@levelcountINT
SET@levelcount=0
--定义游标,表名及列名根据实际进行修改
DECLAREcus_countCURSORFOR
SELECTlevelFROMdbo.grouptemp
--打开游标
OPENcus_count
--定位到下一行。打开后未定位游标定位到首行
FETCHNEXTFROMcus_countINTO@level
--循环游标,条件为小于某个数值并且游标循环未结束。@@FETCH_STATUS=0表示游标未循环结束。
WHILE(@levelcount<100)AND(@@FETCH_STATUS=0)
BEGIN
SET@levelcount=@levelcount+@level
FETCHNEXTFROMcus_countINTO@level
END
--关闭游标
CLOSEcus_count
--释放游标
DEALLOCATEcus_count
--数值打印出来以便调试,正式方法中可不打印
PRINT@levelcount

B. sql server 一条语句循环修改多个值

update first set first.sts = 1,sds = second.sds
from a first
inner join C second on first.id = second.id
-- 手打,大概是这样的

C. sql where 条件为两个变量相连 两个嵌套的循环 改怎么做

是要把SQL拼凑成 where class in ('英语1001-02','英语1101-02','英语1201-02')这样吗?如:
string sql = '';
for($i=1;$i<3;$i++)
{
sql += class[$i].tostring();
}

D. SQL语句中如何增加两个变量

出来问问题,态度还不老实,可笑!

E. SQL中循环语句

可以用变量的形式来增加,不过你的userid
三位显然不够,因为你要加10000数据,所以要和authnum形式一样,5位才够
下面是一个简单的例子,你可以根据实际需求来改一下。
DECLARE
@i
int
DECLARE
@strUserId
varchar(10)
DECLARE
@strAuthnum
varchar(10)
Set
@i
=
0
WHILE
@i
<
10000
BEGIN
Set
@i
=@i
+1
SET
@strUserId
=
RIGHT('00000'
+
CAST(@i
AS
varchar(10)),5)
SET
@strAuthnum
=
@strUserId
insert
into
user_info
values(@strUserId,@strAuthnum)
END

F. 满足两个变量条件的SQL语句怎么写

SELECT [DISTINCT | ALL] { *
| { [schema.]{table | view | snapshot}.*
| expr } [ [AS] c_alias ]
[, { [schema.]{table | view | snapshot}.*
| expr } [ [AS] c_alias ] ] ... }
FROM [schema.]{table | view | snapshot}[@dblink] [t_alias]
[, [schema.]{table | view | snapshot}[@dblink] [t_alias] ] ...
[WHERE condition ]
[GROUP BY expr [, expr] ... [HAVING condition] ]
[{UNION | UNION ALL | INTERSECT | MINUS} SELECT command ]
[ORDER BY {expr|position} [ASC | DESC]
[ {expr|position} [ASC | DESC]] ...]

G. SQL循环语句变量怎么表示

例一:使用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;

H. sql server 里有循环语句吗 没有请看描述

如何利用connection对象连接数据源?

用一个connnection 对象,只要指定一个connection字符串,目的是用来指定你想要联结的数据源,然后调用open方法来建立链接。

通过connection string提供的信息用OPEN方法可以非常轻松的建立与数据的连接。如果你决定用connection对象进行工作,那么你可以用它的STATE属性。如果connection对象被打开了那么它的返回值为adstateopen,如果不是它的返回值为adstateclosed.下面的例子是利用odbc建立与SQL的连接。

Sub ConnectionExample1()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC打开连接.
cnn.Open "Pubs", "sa", ""
' 检查是否完成连接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
关闭connection对象
cnn.Close
End Sub
如果你只需要连接一个数据源。下面的代码要比上面的简单。作为选择,你可以创建一个connection对象,在调用open方法前你可以先设置ConnectionString属性。这种方法容许你连接一个数据源后再重新用这个对象再连接另一个数据源。
Sub ConnectionExample2()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 用ODBC DSN 建立连接
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.Open
' 检查是否与数据源建立了连接.
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
'关闭connection对象
cnn.Close
End Sub
在你对CONNECTION对象建立连接前,你可以设置它的其它属性。例如,你可以设置连接超时。

Sub ConnectionExample3()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
' 设置CONNECTION属性
cnn.ConnectionString = "DSN=Pubs;UID=sa;PWD=;"
cnn.ConnectionTimeout = 30
' 打开connection 对象
cnn.Open
' 检查是否已经连接上数据源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 关闭connection对象
cnn.Close
End Sub
ConnectionString属性的语法结构假定数据源已经被建立或利用系统管理员的身份使用ODBC.不依靠存在的odbc数据源变得流行起来。这样就减轻了安装的负担。下面的例子是一个连接SQL SERVER的可选择性的方法,仅依靠本身存在的odbc driver

. Sub ConnectionExample4()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'利用引用ODBC DRIVER打开CONNECTION对象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' Find out if the attempt to connect worked.
'检查是否已经建立连接
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If
' 关闭CONNECTION对象
cnn.Close
End Sub
现在ODBC DRIVER 有更广的变化,你可以用ADO和数据源对话。不久将会有更的的OLE DB提供者与数据源建立连接。The Microsoft® OLE DB Provider for ODBC是当前ADO默认的提供者。你能用不同的提供者设置CONNECTION对象的provider属性。

Sub ConnectionExample5()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
'设置PROVIDER属性利用OLE DB Provider for ODBC
cnn.Provider = "MSDASQL"
'用ODBC DSN打开CONNECTION对象
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open

'检查是否连接上数据源
If cnn.State = adStateOpen Then
MsgBox "Welcome to Pubs!"
Else
MsgBox "Sorry. No Pubs today."
End If

'关闭CONNECTION对象
cnn.Close

End Sub
上面的代码设置PROVIDER属性不是必须因为ADO的默认提供者就是OLE DB PROVIDER FOR ODBC.这里只是认你知道当你用其它的OLE DB PROVIDERS时如何设置。

我如何用CONNECTION对象执行COMMAND?

CONNNETION的EXECUTE方法用来发送一个COMMAND(一个SQL指令或其它的文本信息)到数据源。如果在SQL指令中要求返回几行记录集,一个RECORDSET对象将会被自动的建立。

Sub ConnectionExample6()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' 引用 ODBC driver 建立连接.
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' 执行SQL 语句创立一个RECORDSET对象.
Set rs = cnn.Execute("Select * From authors")
' 显示第一个 author.
MsgBox rs("au_fname") & " " & rs("au_lname")
' 断开连接
rs.Close
End Sub
记住用EXECUTE返回的RECORDSET是只读的,并且是仅向前光标。如果你需要用RECORDSET物件的更多函数,你首先要创建RECORDSET物件并设置想要设置的属性然后用OPEN方法打开它来执行查询和返回想要得到的光标类型.

在下面的例子中,COMMAND物件执行删除指令,由于没有数据集需要返回,你不需要额外的用RECORDSET物件.删除了多少行数据?你可以通过RECORDSAFFECTED参数知道它.

Sub ConnectionExample7()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
'引用ODBC DRIVER建立连接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
'向数据源发送删除指令
cnn.Execute ("Delete From authors Where au_id = '011-01-0111'")
' 检查有多少行数据被删除
Set rs = cnn.Execute("Select @@rowcount")
' 显示第一个字段
MsgBox rs(0) & " rows deleted"
'关闭连接
rs.Close
End Sub
下面的例子,这个COMMAND通过指定的存储过程的名字运行数据源的存储过程.由于需要返回数据,所以你必需建立RECORDSET物件。

Sub ConnectionExample8()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
' 引用ODBC DRIVER来建立连接
cnn.ConnectionString = "driver={SQL Server};" & _
"server=rgreennt;uid=sa;pwd=;database=pubs"
cnn.Open
' 建立RECORDSET对象来运行存储过程
Set rs = cnn.Execute("Exec byroyalty 50")
' 通过循环来显示AUTHOR的ID
Do While Not rs.EOF
MsgBox rs("au_id")
rs.MoveNext
Loop
' 断开连接
rs.Close
End Sub