要對乙個表的每一行做出比較複雜的操作,一般會想到用游標,今天想到使用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...