關於SQL兩次迴圈問題,關於SQL的迴圈問題

時間 2023-04-21 20:54:02

1樓:擺渡浮橋

內迴圈之後忘記重新初始化變數@currid。

改寫之後:declare @currid intdeclare @no int

set @no=822

while(@no<1014)

beginset @currid = 2 --把變數初始化放到這。

while( exists(select piece_no from xinbiao where piece_no=@currid) )

beginupdate xinbiao set page_no=(select page_no+quantity from xinbiao where piece_no=@currid-1 and year_folder_no=@no) where piece_no=@currid and year_folder_no=@no

set @currid=@currid+1endset @no=@no+1end

關於sql的迴圈問題

2樓:擺渡浮橋

迴圈效率低。可以只用一個update 語句實現,只掃描一次表,高效。

update table1

set score = case when score between 70 and 79 then 80 --70-79,每次+1分,最終80

when score between 60 and 69 then ceiling((80 - score)/ 5 + score --60-69,每次加5分。

when score < 60 then ceiling((80 - score)/ 10 + score end --60,每次加10分。

where score < 80 --大於或等於80分,不加分。

3樓:

樓主,一次加一分一次加十分,最後你還不是都要加到80,還分什麼規則啊。

把成績小於80的都更新成80不行麼。

4樓:舒綺煙

create table #temp(

路線** varchar(8),起點 varchar(8),終點 varchar(8),起點樁號 decimal(4,2) ,終點樁號 decimal(4,2)

goinsert into #temp

select 'y440608', 大灣', 石柱', union all

select 'y440608', 石柱', 觀音橋', union all

select 'y440608', 觀音橋', 蘆溪', union all

select 'y440605', 龍橋', 磙子河',

goselect

firsttemp.[路線**],firsttemp.[起點],lasttemp.[終點],firsttemp.[起點樁號],lasttemp.[終點樁號]

from#temp as firsttemp

join #temp as lasttemp

on (firsttemp.[路線**] =lasttemp.[路線**])

wherenot exists

select 1

from #temp as checkfirst

wherefirsttemp.[路線**] =checkfirst.[路線**]

and firsttemp.[起點] =checkfirst.[終點]

and not exists

select 1

from #temp as checklast

wherelasttemp.[路線**] =checklast.[路線**]

and lasttemp.[終點] =checklast.[起點]

路線** 起點 終點 起點樁號 終點樁號。

y440608 大灣 蘆溪

y440605 龍橋 磙子河

2 行受影響)

關於sql迴圈的問題

5樓:匿名使用者

建議提供表結構,才能寫出合理的sql

另外可以嘗試用ssis整合服務實現。

6樓:匿名使用者

最簡單的辦法,就是分成單獨的幾個表,比如省,市,區三個表,用id去關聯。

再查詢就可以得到你想要的這個結果。

在j**a中執行sql查詢,當for迴圈兩次時第一次滿足條件一,第二次滿足條件二時,select語句第二次沒有執行

7樓:匿名使用者

第二次沒有執行時因為,你第一次查詢結束後關閉了result。

不知道你這個要實現什麼功能,你這個迴圈其實是沒意義的,每次結果都會覆蓋,就是隻能得到最後一次的迴圈結果!

8樓:匿名使用者

我不知道你為什麼要有個迴圈,你的。

條件肯定是在迴圈之外就做好了吧。 那麼,進入循版環之後,不權管迴圈幾次 都只會有一個結果,那你還要這個迴圈做什麼? 脫了褲子放屁 多此一舉 而且你把關閉語句也放在迴圈裡面的,當第一次迴圈完了之後,資源都關閉了,你還查詢什麼?

9樓:匿名使用者

用debug跟蹤一下,看看是不是第二次迴圈停住了。

10樓:匿名使用者

建議:你只要條件二看看。

sql server如何查詢出某個欄位重複出現兩次以上的資料

11樓:

用關鍵字 stinct

select stinct 欄位。

不重複的意思。

請教一個sql關於迴圈問題

12樓:琦之玉

這個根本不需要迴圈的,一個sql語句技能搞定,多做幾個連線查詢,做迴圈的話複雜,而且效能還低。

13樓:匿名使用者

是什麼資料庫? 不同資料庫有不同寫法。

sql迴圈引用的問題

14樓:但秋柳

描述不是很清楚,需要這個表結構以及含義的說明。

一個sql查句迴圈計數的問題 10

15樓:匿名使用者

這個不用迴圈,用case when 就可以了。

select xm,ds,dn,kk,case when ds = 0 then 0 else 1 end + case when dn = 0 then 0 else 1 end + case when kk = 0 then 0 else 1 end from 表名。

關於sql server的迴圈更新問題

16樓:

with t1 as (select 6 as flag)

select a.日期,a.總數,(case when (tmp_data-flag)<=0 then 0 else (tmp_data-flag) end) as "已用",a.總數- (case when (tmp_data-flag)<=0 then 0 else (tmp_data-flag) end ) as 「剩餘"

from (

select a.日期,a.總數,a.已用,a.剩餘,sum(b.總數) tmp_data

from (select 日期,總數,已用,剩餘,row_number() over(order by 日期 asc) num from table_name) a

left join (select 日期,總數,已用,剩餘,row_number() over(order by 日期 asc) num from table_name) b on >=

group by a.日期,a.總數,a.已用,a.剩餘。

p, t1這樣吧。

問關於sql時間求和的問題,問一個關於SQL時間求和的問題!

沒有想到太好的解決辦法,還是用笨方法通過轉換解決 建表 create table timetest tdate varchar2 8 ttime varchar2 4 初始化資料 insert into timetest values 20130613 0230 insert into timete...

關於C中SQL查詢語句的引數,關於C 中SQL查詢語句的引數

tbname truename要 tbname truename 這個是string連線的一種方式 eg a b ab tbname truename tbname truename這個應該是資料庫欄位對應的值兩個 是sql語句 select from table where name 名字 只有在...

關於vb迴圈次數的問題?急,VB計算迴圈的次數

誤差造成 請看這段程式 private sub form click dim i as single for i 0.2 to 1 step 0.1 print i next end sub 輸出結果是 2.3 4.5 6.7 8000001 9000001 你可以把程式放入vb除錯一下,最後2行也...