SQL2005實現迴圈每一行做一定操作。

2021-06-18 07:33:45 字數 701 閱讀 7515

要對乙個表的每一行做出比較複雜的操作,一般會想到用游標,今天想到使用sql2005中的新函式row_number()和while迴圈來對每一行執行操作。示例**如下:

department_no 

asdepartmentno,row_number() 

over

(order

bydepartment_no) 

asrownumber 

into

#deptemp

--建立臨時表

from

departments

declare

@max

int--

獲得最大的rownumber

select

@max

=max

(rownumber)

from

#deptemp

declare

@rowno

intset@rowno=1

while

@rowno

<=

@max

--對每乙個rownumber進行迴圈操作

begin

--這兒對每一行要進行的操作的**

set@rowno

=@rowno+1

enddrop

table

#deptemp

--清除臨時表

linux 迴圈讀取檔案的每一行

在linux中有很多方法逐行讀取乙個檔案的方法,其中最常用的就是下面的指令碼裡的方法,而且是效率最高,使用最多的方法。為了給大家乙個直觀的感受,我們將通過生成乙個大的檔案的方式來檢驗各種方法的執行效率。方法1 while迴圈中執行效率最高,最常用的方法。複製 如下 function while re...

ORACLE純SQL實現多行合併一行

專案中遇到乙個需求,需要將多行合併為一行。表結構如下 name null type n sec code not null char 6 c researcher code not null varchar2 20 此表儲存了 與 研究員 的對應關係資料,一般而言,對於同一只 而言,可能有多個研究員...

Oracle純SQL實現多行並一行

問題 在開發過程中需要實現以下效果 1 a 1 b 1 a,b,c 1 c 1.oracle 10以上可以使用wmsys.wm concat函式,相當easy 2.如果oracle是9以下,則用procedure或function實現 3.純sql實現 oracle9及以上 由於有 sys conn...