日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle易忘函数用法(6)

發布時間:2024/9/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle易忘函数用法(6) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LEAST()

exp_list是一列表達式,返回其中最小的表達式,每個表達式都被隱含的轉換第一個表達式的數據類型,如果第一個表達式是字符串數據類型中的任何一個,將返回的結果是varchar2數據類型,同時使用的比較是非填充空格類型的比較。

UID

該函數沒有參數,返回唯一標示當前數據庫用戶的整數。

USER

返回當前用戶的用戶名

USERENV()

基于opt返回包含當前會話信息。opt的可選值為:

ISDBA  會話中SYSDBA腳色響應,返回TRUE

SESSIONID  返回審計會話標示符

ENTRYID 返回可用的審計項標示符

INSTANCE在會話連接后,返回實例標示符。該值只用于運行Parallel 服務器并且有 多個實例的情況下使用。

LANGUAGE返回語言、地域、數據庫設置的字符集。

LANG返回語言名稱的ISO縮寫。

TERMINAL為當前會話使用的終端或計算機返回操作系統的標示符。

VSIZE()??????????? x是一個表達式。返回x內部表示的字節數。

二、SQL中的組函數

組函數也叫集合函數,返回基于多個行的單一結果,行的準確數量無法確定,除非查詢被執行并且所有的結果都被包含在內。與單行函數不同的是,在解析時所有的行都是已知的。由于這種差別使組函數與單行函數有在要求和行為上有微小的差異.

1、組(多行)函數

與單行函數相比,oracle提供了豐富的基于組的,多行的函數。這些函數可以在select或select的having子句中使用,當用于select子串時常常都和GROUP BY一起使用。

AVG([{DISYINCT|ALL}])

返回數值的平均值。缺省設置為ALL

SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM scott.empAVG(SAL) AVG(ALL SAL)

AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413

COUNT({*|DISTINCT|ALL} )

返回查詢中行的數目,缺省設置是ALL,*表示返回所有的行。

MAX([{DISTINCT|ALL}])

返回選擇列表項目的最大值,如果x是字符串數據類型,他返回一個VARCHAR2數據類型,如果X是一個DATA數據類型,返回一個日期,如果X是numeric數據類型,返回一個數字。注意distinct和all不起作用,應為最大值與這兩種設置是相同的。

MIN([{DISTINCT|ALL}])

返回選擇列表項目的最小值。

STDDEV([{DISTINCT|ALL}])

返回選者的列表項目的標準差,所謂標準差是方差的平方根。

SUM([{DISTINCT|ALL}])

返回選擇列表項目的數值的總和。

VARIANCE([{DISTINCT|ALL}])

返回選擇列表項目的統計方差。

2、用GROUP BY給數據分組

正如題目暗示的那樣組函數就是操作那些已經分好組的數據,我們告訴數據庫用GROUP BY怎樣給數據分組或者分類,當我們在SELECT語句的SELECT子句中使用組函數時,我們必須把為分組或非常數列放置在GROUP BY子句中,如果沒有用group by進行專門處理,那么缺省的分類是將整個結果設為一類。

select stat,counter(*) zip_count from zip_codes GROUP BY state;

ST ZIP_COUNT-- ---------AK 360AL 1212AR 1309AZ 768CA 3982

在這個例子中,我們用state字段分類;如果我們要將結果按照zip_codes排序,可以用ORDER BY語句,ORDER BY子句可以使用列或組函數。

select stat,counter(*) zip_count from zip_codes GROUP BY state ORDER BY COUNT(*) DESC;

ST COUNT(*)-- --------NY 4312PA 4297TX 4123CA 3982

3、用HAVING子句限制分組數據

現在你已經知道了在查詢的SELECT語句和ORDER BY子句中使用主函數,組函數只能用于兩個子串中,組函數不能用于WHERE子串中,例如下面的查詢是錯誤的:

錯誤SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' AND SUM(sale_amount)>10000 GROUP BY sales_clerk

這個語句中數據庫不知道SUM()是什么,當我們需要指示數據庫對行分組,然后限制分組后的行的輸出時,正確的方法是使用HAVING語句:

SELECT sales_clerk,SUN(sale_amount) FROM gross_sales

WHERE sales_dept='OUTSIDE' GROUP BY sales_clerkHAVING SUM(sale_amount)>10000;

4、嵌套函數

函數可以嵌套。一個函數的輸出可以是另一個函數的輸入。操作數有一個可繼承的執行過程。但函數的優先權只是基于位置,函數遵循由內到外,由左到右的原則。嵌套技術一般用于象DECODE這樣的能被用于邏輯判斷語句IF....THEN...ELSE的函數。

嵌套函數可以包括在組函數中嵌套單行函數,或者組函數嵌套入單行函數或組函數中。比如下面的例子:

SELECT deptno, GREATEST(COUNT(DISTINCT job),COUNT(DISTINCT mgr) cnt,

COUNT(DISTINCT job) jobs,COUNT(DISTINCT mgr) mgrsFROM empGROUP BY deptno;

DEPTNO CNT JOBS MGRS------ --- ---- ----10 4 4 220 4 3 430 3 3 2

總結

以上是生活随笔為你收集整理的oracle易忘函数用法(6)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。