sql循環修改
A. sql 循環修改一個表的某個欄位的值,如圖
你看是這個意思嗎?
數據就是你給的這個,表名我起的叫test
declare@idint
declare@maxidint
set@id=3
select@maxid=max(id)fromtest
begin
while@id<=@maxid
begin
updatetestsetavg_value=balance+(selectavg_valuefromtestwhereid=@id-1)whereid=@id
set@id=@id+1
end
end
結果
B. 如何使用for循環更新sql 語句
CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userId varchar(50)
DECLARE @count int
SET @count = 0
SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'
exec UserService_RemoveUserByUserId @userId
SET @count = @count -1
END
END
說明:
1、此存儲過程在SQL SERVER 2005上測試通過,值得注意的是,循環體中,語句是使用BEGIN……END包括的,而不是網路上常說的WHILE ……END WHILE結構,其他的循環語句,如LOOP ……UNTIL……END LOOP也不能通過編譯,也許是版本的問題,但在SQL SERVER2005中,循環體使用BEGIN……END就可以,而不能使用網路上常說的WHILE ……END WHILE結構。
2、循環體中 UserService_RemoveUserByUserId 是一個存儲過程的名稱,@userId為該存儲過程的參數,如果有多個參數,使用「,」分開就可以了,這也是存儲過程調用另一個存儲過程的一種方法。
C. 關於SQL按條件循環插入和修改欄位值的語句
僅僅使用sql是油法子實現了,要配合編程才能實現。例如:
for($i=0;$i<100;$i++){
$m->query("update table set wc='$wc.$i' where id='$i'");
}
D. sql server 一條語句循環修改多個值
update first set first.sts = 1,sds = second.sds
from a first
inner join C second on first.id = second.id
-- 手打,大概是這樣的
E. mySql 循環讀取並修改的sql函數怎麼寫
估計要用游標循環->字元串累加生成SQL語句,類似update tb set c=a;->再執行的方法
F. 我有多條sql的更新語句,怎麼用一個循環語句執行一次更新整一張數據表的數據
1、首先,使用Navicat for MySQL連接資料庫並創建一個資料庫。
G. 怎麼用sql修改一列的數據使其循環遞增
updatezsetz.你要更新的欄位名=b.r
from你的表名z
leftjoin
(
selecta.pk,casea.r%16when0then16elsea.r%16endasr
from
(
select主鍵aspk,row_number()over(orderby主鍵)asr
from你的表名
)a
)bonz.主鍵=b.pk
H. ACCESS資料庫中如何利用SQL語句實現循環修改表的目的
ACCESS
JET引擎不支持循環。如果一定要循環,可以利用ACCESS內置的VBA語言編程予以實現,但是這已經不屬於資料庫解決問題的方式了(資料庫解決問題的方式是面向記錄集合的,碰到需要面向單筆記錄解決問題時它很無力)。
下面是純SQL的解決方案,供參考
12update tblB b,tblA a set b.SCORE=a.NEWSCORE where a.CNAME=b.CNAME;
請留意tblA中的CNAME應該是唯一的,否則系統會選取同CNAME其中一條記錄的NEWSCORE去更新tblB中的SCORE。