1. 程式人生 > >oracle遊標處理多行記錄

oracle遊標處理多行記錄

1.查詢工資大於10號部門平均工資的職工資訊
declare
cursor cc is select * from emp where sal>(select avg(sal) from emp where deptno=10);
ccrec cc%rowtype;
begin
open cc;
loop
fetch cc into ccrec;
exit when cc%notfound;
dbms_output.put_line(ccrec.empno||'--'||ccrec.ename||'--'||ccrec.job||'--'||ccrec.sal);
end loop;
close cc;
end;
2.查詢各個部門的人數
declare
cursor cc is select b.dname,count(a.empno) as zongshu from emp a,dept b where a.deptno=b.deptno group by b.dname;
ccrec cc%rowtype;
begin
open cc;
loop
fetch cc into ccrec;
exit when cc%notfound;
dbms_output.put_line(ccrec.dname||'----'||ccrec.zongshu);
end loop;
close cc;
end;


相關推薦

oracle遊標處理記錄

1.查詢工資大於10號部門平均工資的職工資訊 declare cursor cc is select * from emp where sal>(select avg(sal) from emp where deptno=10); ccrec cc%rowtype;

ORACLE 儲存過程遊標返回

1、過程主體 --儲存過程迴圈 ,SELECT INTO 是隱式遊標只能返回一行 CREATE OR REPLACE PROCEDURE P_LOOP_PR ( P_TIME NUMBER) IS A_OVER NUMBER; A_NAME VARCHAR2(20); BE

SqlServer和Oracle記錄(資料集)中查詢結果並拼接成一個字串的SQL語句(縱表資料轉成拼接的文字)

使用情景: 例如:需要從學生成績表中,查詢分數大於95分的所有學生編號,用逗號分隔成一個字串。 準備測試資料: create table score (id int,score int) insert into score values(1,90) insert into

用SQL將Oracle中同一列的記錄拼接成一個字串

-- 原始資料 -- a 111 -- b 222 -- a 333 -- a 444 -- b 555 -- 最終結果 -- a 111*333*444 SELECT L4.L_TIME ,MAX(SUBSTR(L4.分組內容,2)) 最終欄位

oracle 如何將資料進行合併(用LISTAGG!!!)

LISTAGG(列名,' 分割符號') oracle 11g 以上的版本才有的一個將指定列名的多行查詢結果,用 指定的分割符號 合併成一行顯示: 例如: 表原始資料: 需求:將 mb1_Transport_License_list 表中的資料,根據 transpo

ORACLE單行轉ORACLE遞迴查詢

ORACLE單行轉多行 WITH TESTTABLE AS ( SELECT 'TEST1' GROUPNAME , 'A,B,C,D,E' VALUENAME FROM DUAL UNION ALL SELECT 'TEST2' GROUPNAME ,

sql資料庫:根據某分隔符將一條記錄拆分為記錄

需要通過身份證號聯表查詢比對,可是房產登記的身份證可能不止一個,查詢的時候只能比對一個身份證號的 所以需要 根據某分隔符將一條記錄拆分為多行記錄 從網上找到一個例子 create table tb(id int,value varchar(30)) insert into

SQL中用insert into插入一行或記錄

INSERT INTO插入一行記錄:         INSERT INTO tablename values(v1,v2,...);  --這裡需包括所有列的值    若只向指定列插入值:         INSERT INTO tablename (column1,co

[Hive]用concat_w實現將記錄合併成一行

建表如下: # 建立商品與促銷活動的對映表 hive -e "set mapred.job.queue.name=pms; set hive.exec.reducers.max=32; set ma

python處理鍵盤輸入

根據牛客網的說法:https://www.nowcoder.com/discuss/276 import sys try: while True: line1 = sys.stdin.readline().strip() if line1 ==

oracle 字串轉

SELECT SUBSTR(FIELD1, INSTR(FIELD1, '|', 1, ROWNUM) + 1, INSTR(FIELD1, '|', 1, ROWNUM + 1) - INSTR(FIELD1, '|',

python處理檔案內容

工作中需要切換程式執行環境,於是要改配置檔案內容,便想到了用指令碼實現,便於切換。剛開始用vbs寫的,廢了老大勁還沒做出來,同事說python更好用點,一直也想學習下python,正好這是一次機會。 整個指令碼需要做的事是在檔案中查到需要改的語句後替換為另一語句,還需通過關

Oracle合併拼接資料

select wmsys.wm_concat(t.column) from tableName t; wmsys.wm_concat預設是用英文逗號‘,’拼接的,如果需要更換拼接符號,可以用replace函式將英文逗號替換成其它字元。 wmsys.wm_co

MYSQL:INSERT INTO .. ON DUPLICATE KEY更新記錄,防止主鍵重複

如果行作為新記錄被插入,則受影響行的值為1;如果原有的記錄被更新,則受影響行的值為2。 如果你想了解更多關於INSERT INTO .. ON DUPLICATE KEY的功能說明,詳見MySQL參考文件:13.2.4. INSERT語法 現在問題來了,如果INSERT多行記錄, ON DUPLICA

Oracle資料庫之函式

Oracle資料庫總結: SUM(SAL)

sql 分隔符字串轉換成表以及記錄列值轉換成字串

--1. 字串(分隔符分隔組成的字串)轉換成多行記錄的表 -- Function create FUNCTION [dbo].[fn_Split1]( @String nvarchar (max), @Delimiter nvarchar (10)

SQL中合併記錄的方法總彙

-- =============================================================================-- Title: 在SQL中分類合併資料行-- Author: dobear        Mail(MSN): [email prote

ORACLE SQL 聚合()聚合函式

        oracle sql 提供了非常多的函式用於基礎查詢。這些函式主要分為兩大類:單行函數和聚合函式(多行函式)。          聚合函式通常應用在整表或分組統計查詢中。常用的聚合函式有:sum,count,min,max,avg,median。以scott

mysql儲存過程 --遊標的使用 取每記錄 (欄位)

delimiter $ create PROCEDURE phoneDeal() BEGIN DECLARE id varchar(64); -- id DECLARE phone1 varchar(16); -- phone DECLARE password1

Oracle 一對數據整理為一行

highlight sys ont rom images 函數 zdb 行處理 rac 在開發中一對多的關系經常用到,昨天遇到一個客戶問題,要求將所有反饋任務的信息整理為一行展示並導出excel。 我數據庫對應關系:通任務task對應feedback表多個反饋,也就是說每個