SQL入門之6 sql*plus

wmlm發表於2007-04-05
替換變數與格式化[@more@]

-- 第一種方式,臨時輸入
select * from emp where ename=&vname;
-- 第二種方式,預定義
def vname='SMITH'
select * from emp where ename='&vname';
-- 注意:在使用char型別的變數時,要加上'',數值型不加''
-- 檢視及解除已定義的變數
def vname
def
undefine vname

-- &&定義一次,全session可用;&一次使用
-- 不顯示新舊值的提示 set verify off
-- 設定與顯示session中的變數
SET system_variable value
SHOW ECHO
show all

-- sql*plus 中的Format Commands
COLUMN [column option]
TTITLE [text | OFF | ON] -- top title
BTITLE [text | OFF | ON] -- bottom title
BREAK [ON report_element]

col referred null 'not ref' --將介紹人為空的地方顯示為'not ref'
col referred hea '介紹人' --將列頭置為'介紹人'
col referred nopri --不顯示此列
-- 顯示某列的設定
SQL> col referred
COLUMN referred ON
HEADING '介紹人'
NULL 'not ref'

-- 不顯示重複的值
BREAK ON DEPARTMENT_ID SKIP 1
SELECT DEPARTMENT_ID, LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY > 12000
ORDER BY DEPARTMENT_ID;

break on row skip 1 --在每行後插入一空行

-- 分組計算
break on job skip 1 nodup
compute sum of sal on job
select * from emp order by job;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
--------- ---------- --------- ---------- --------- -------------- ---------- ----------
7788 SCOTT ANALYST 7566 09-DEC-82 $3,000.00 20
7902 FORD 7566 03-DEC-81 $3,000.00 50
********* --------------
sum $6,000.00

7369 SMITH CLERK 7902 17-DEC-80 $800.00 20
7876 ADAMS 7788 12-JAN-83 $1,100.00 20
7934 MILLER 7782 23-JAN-82 $1,300.00 10
7900 JAMES 7698 03-DEC-81 $950.00 30
********* --------------
sum $4,150.00
Example 7-14 Computing and Printing a Grand Total

BREAK ON REPORT
COMPUTE SUM LABEL TOTAL OF SALARY ON REPORT

SELECT LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE JOB_ID='SA_MAN';

LAST_NAME SALARY
------------------------- ----------
Russell 14000
Partners 13500
Errazuriz 12000
Cambrault 11000
Zlotkey 10500
----------
TOTAL 61000

-- 設定報表的表頭與表尾 |表示換行,heading中也可以使用|
TTITLE 'Salary|Report'
BTITLE 'Confidential'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-908835/,如需轉載,請註明出處,否則將追究法律責任。

相關文章