手順:
1. ROUND(X[,Y])、丸め。
デフォルトの y が使用される場合、デフォルトの y=0 になります (例: ROUND(3.56)=4)。
y は正の整数で、小数点以下 y 桁に四捨五入されます。 ROUND(5.654,2)=5.65。
y は負の整数で、小数点の左側の |y| 桁に丸められます。 ROUND(351.654,-2)=400。
2. TRUNC(x[,y])、丸めずに直接インターセプトします。
デフォルトの y が使用される場合、デフォルトの y=0 になります (例: TRUNC (3.56)=3)。
Y は正の整数で、小数点以下 y 桁に丸められます。 TRUNC (5.654,2)=5.65。
y は負の整数で、小数点の左側の |y| 桁に丸められます。 TRUNC (351.654,-2)=300。
3. 日付関数
日付関数は日付を操作します。一般的に使用される日付関数は、
1、ADD_MONTHS(d,n) で、指定された月数 n を特定の日付 d に加算し、計算された新しい日付を返します。
d は日付を表し、n は加算される月数を表します。
例: SELECT SYSDATE,add_months(SYSDATE,5) FROM dual;
2. LAST_DAY(d) は、指定された日付の月の最終日を返します。
例: SELECT SYSDATE,last_day(SYSDATE) FROM dual;
3. ROUND(d[,fmt])、fmt 形式で丸められた日付を返します。 value、d は日付、fmt は形式
モデルです。デフォルトの fmt は DDD、つまり月内の日です。
Ø ① fmt が "YEAR" の場合、ある年の 1 月 1 日に四捨五入します。つまり、年の前半を切り捨て、後半を考慮します。来年のように。
Ø ② fmt が「MONTH」の場合、ある月の 1 日に四捨五入、つまり前月を切り捨て、月の後半を翌月とします。月。
Ø ③ デフォルトは「DDD」です。つまり、月内の特定の日、最も近い日、その日の前半は破棄され、その日の後半は次の日とみなされます。日。
Ø ④ fmt が「DAY」の場合、直近の週の日曜日に四捨五入します。つまり、週の前半を切り捨て、週の後半を日曜日とみなします。来週の。
例: SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),
ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;
ROUND に対応する関数は TRUNC (d[,fmt]) で、日付を操作します。TRUNC は ROUND とよく似ています。ただし、日付は四捨五入されず、対応する形式の最初の日に直接切り取られます。
4. EXTRACT(fmt FROM d)、日付の特定の部分を抽出します。
fmt は、年、月、日、時、分、秒です。このうち、YEAR、MONTH、DAY は DATE 型または TIMESTAMP 型と一致しますが、HOUR、MINUTE、SECOND は TIMESTAMP 型と一致する必要があります。
HOUR タイムゾーンは一致結果に追加されないため、中国で実行される結果は 8 時間小さくなります。
例: SELECT SYSDATE "date",
EXTRACT(YEAR FROM SYSDATE)"year",
EXTRACT(MONTH FROM SYSDATE)"month",
EXTRACT(DAY FROM SYSDATE)"day",
EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",
EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",
EXTRACT(SECOND FROM SYSTIMESTAMP)"second"
FROM dual;
4. 変換関数
変換関数は、あるデータ型から値を変換します。別のデータ型。一般的な変換関数は次のとおりです:
1, TO_CHAR(d|n[,fmt])
日付と数値を指定された形式の文字列に変換します。 Fmt はフォーマットされた文字列です。
コードのデモ: 日付の TO_CHAR 処理 SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
コード分析:
フォーマットされた文字列では、double を使用します。書式設定されていない文字を引用符で囲みます。
数値の書式設定の場合、書式設定文字は次のとおりです:
パラメータ |
例 |
説明 |
##9
|
999
|
指定した位置に番号を表示します
|
#. | 9.9
#指定された位置の小数点を返します |
|
,
99,99 |
#指定された位置にカンマを返します |
#$ |
$999
|
数値の先頭にドル記号を返します
|
EEEE |
9.99EEEE
|
科学的表記法
|
L |
L999
| #数値の前に現地通貨記号を追加 |
#PR
| #999PR
数値が負の場合は、山括弧を使用してそれを示します |
代码演示:TO_CHAR对数字的处理
SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
2、TO_DATE(X,[,fmt])
把一个字符串以fmt格式转换成一个日期类型
3、TO_NUMBER(X,[,fmt])
把一个字符串以fmt格式转换为一个数字
代码演示:TO_NUM函数 SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;
五、其它单行函数
1、NVL(X,VALUE)
如果X为空,返回value,否则返回X
例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元
代码演示:NVL函数 SQL> SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL NVL(COMM,100)
SMITH CLERK 800 100
ALLEN SALESMAN 1600 300
WARD SALESMAN 1250 500
MARTIN SALESMAN 1250 1400
TURNER SALESMAN 1500 50
ADAMS CLERK 1100 100
JAMES CLERK 950 100
-------------------------------------------------------------------
7 rows selected 2、NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2
例:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元
代码演示:NVL2函数 SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm"
2 FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL comm
SMITH CLERK 800 200
ALLEN SALESMAN 1600 400
WARD SALESMAN 1250 600
MARTIN SALESMAN 1250 1500
TURNER SALESMAN 1500 150
ADAMS CLERK 1100 200
JAMES CLERK 950 200
MILLER CLERK 1300 200
-------------------------------------------------------------------------------------------------------
8 rows selected 六、聚合函数
聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值
等。
名称 |
作用 |
语法 |
AVG |
平均值 |
AVG(表达式) |
SUM |
求和 |
SUM(表达式) |
MIN、MAX |
最小值、最大值 |
MIN(表达式)、MAX(表达式) |
COUNT |
数据统计 |
COUNT(表达式) |
例:求本月所有员工的基本工资总和
代码演示:sum函数 SQL> SELECT SUM(sal) FROM emp;
-------------------------------------------------------------------
SUM(SAL)
29025 例:求不同部门的平均工资
代码演示:AVG函数下的分组查询 SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
-------------------------------------------------------------------
DEPTNO AVG(SAL)
--------- ----------
30 1566.66666
20 2175
10 2916.66666 推荐教程:《Oracle教程》
|
|