欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Java喬曉松-oracle的單行函數(日期函數和數字

系統 2292 0

單行函數

單行函數 :

操作數據對象

接受參數返回一個結果

只對一行進行變換

每行返回一個結果

可以轉換數據類型

可以嵌套

參數可以是一列或一個值

Java喬曉松-oracle的單行函數(日期函數和數字函數)

字符函數

Java喬曉松-oracle的單行函數(日期函數和數字函數)

大小寫控制函數

這類函數改變字符的大小寫。

Java喬曉松-oracle的單行函數(日期函數和數字函數)

顯示員工 Higgins 的信息 :

SELECT employee_id, last_name, department_id

FROM?? employees

WHERE? last_name = 'higgins';

no rows selected

SELECT employee_id, last_name, department_id

FROM?? employees

WHERE? LOWER(last_name) = 'higgins';

字符控制函數

這類函數控制字符 :

Java喬曉松-oracle的單行函數(日期函數和數字函數)

SELECT employee_id, CONCAT(first_name, last_name) NAME,

?????? job_id, LENGTH (last_name),

?????? INSTR(last_name, 'a') "Contains 'a'?"

FROM?? employees

WHERE? SUBSTR(job_id, 4) = 'REP';

數字函數

ROUND: 四舍五入

ROUND(45.926, 2)???????????????????? 45.93

TRUNC:? 截斷

TRUNC(45.926, 2)?????????????? 45.92

MOD: 求余

MOD(1600, 300)???????????????? 100

ROUND 函數

SELECT ROUND(45.923,2), ROUND(45.923,0),

?????? ROUND(45.923,-1)

FROM?? DUAL;

DUAL 是一個 偽表 ,可以用來測試函數和表達式

TRUNC 函數

SELECT? TRUNC(45.923,2), TRUNC(45.923),

??????? TRUNC(45.923,-2)

FROM?? DUAL;

MOD 函數

SELECT last_name, salary, MOD(salary, 5000)

FROM?? employees

WHERE? job_id = 'SA_REP';

日期

Oracle 中的日期型數據實際含有兩個值 : 日期和時間。

默認的日期格式是 DD-MON-RR.

SELECT last_name, hire_date

FROM?? employees

WHERE? last_name like 'G%';

函數 SYSDATE 返回 :

日期

時間

日期的數學運算

在日期上加上或減去一個數字結果仍為日期。

兩個日期相減返回日期之間相差的天數。

可以用數字除 24 來向日期中加上或減去小時。

SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS

FROM?? employees

WHERE? department_id = 90;

日期函數

Java喬曉松-oracle的單行函數(日期函數和數字函數)

TO_CHAR 函數對日期的轉換

TO_CHAR(date, 'format_model')

格式 :

必須包含在單引號中而且大小寫敏感。

可以包含任意的有效的日期格式。

日期之間用逗號隔開。

日期格式的元素

Java喬曉松-oracle的單行函數(日期函數和數字函數)

Java喬曉松-oracle的單行函數(日期函數和數字函數)

SELECT last_name,

?????? TO_CHAR(hire_date, 'DD Month YYYY')

?????? AS HIREDATE

FROM?? employees;

TO_CHAR 函數對數字的轉換

TO_CHAR(number, 'format_model')

下面是在 TO_CHAR 函數中經常使用的幾種格式 :

Java喬曉松-oracle的單行函數(日期函數和數字函數)

SELECT TO_CHAR(salary, '$99,999.00') SALARY

FROM?? employees

WHERE? last_name = 'Ernst';

TO_NUMBER TO_DATE 函數

使用 TO_NUMBER 函數將字符轉換成數字 :

TO_NUMBER(char[, 'format_model'])

?

使用 TO_DATE 函數將字符轉換成日期 :

TO_DATE(char[, 'format_model'])

通用函數

這些函數適用于任何數據類型,同時也適用于空值:

NVL (expr1, expr2)

NVL2 (expr1, expr2, expr3)

NULLIF (expr1, expr2)

COALESCE (expr1, expr2, ..., exprn)

NVL 函數

將空值轉換成一個已知的值:

可以使用的數據類型有日期、字符、數字。

函數的一般形式 :

NVL(commission_pct,0)

NVL(hire_date,'01-JAN-97')

NVL(job_id,'No Job Yet')

使用 NVL 函數

SELECT last_name, salary, NVL(commission_pct, 0),

?? (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL

FROM employees;

使用 NVL2 函數

NVL2 (expr1, expr2, expr3) : expr1 不為 NULL ,返回 expr2 ;為 NULL ,返回 expr3

SELECT last_name,? salary, commission_pct,

?????? NVL2(commission_pct,

??????????? 'SAL+COMM', 'SAL') income

FROM?? employees WHERE department_id IN (50, 80);

?

使用 NULLIF 函數

NULLIF (expr1, expr2) :? 相等返回 NULL ,不等返回 expr1

SELECT first_name, LENGTH(first_name) "expr1",

?????? last_name,? LENGTH(last_name)? "expr2",

?????? NULLIF(LENGTH(first_name), LENGTH(last_name)) result

FROM?? employees;

使用 COALESCE 函數

COALESCE NVL 相比的優點在于 COALESCE 可以同時處理交替的多個值。

如果第一個表達式為空 , 則返回下一個表達式,對其他的參數進行 COALESCE

使用 COALESCE 函數

SELECT?? last_name,

???????? COALESCE(commission_pct, salary, 10) comm

FROM ????employees

ORDER BY commission_pct;

條件表達式

SQL 語句中使用 IF-THEN-ELSE 邏輯

使用兩種方法 :

CASE 表達式

DECODE 函數

CASE 表達式

在需要使用 IF-THEN-ELSE 邏輯時 :

CASE expr WHEN comparison_expr1 THEN return_expr1

???????? [WHEN comparison_expr2 THEN return_expr2

????????? WHEN comparison_exprn THEN return_exprn

????????? ELSE else_expr]

END

下面是使用 case 表達式的一個例子:

SELECT last_name, job_id, salary,

?????? CASE job_id WHEN 'IT_PROG'? THEN? 1.10*salary

?????????????????? WHEN 'ST_CLERK' THEN? 1.15*salary

?????????????????? WHEN 'SA_REP'?? THEN? 1.20*salary

?????? ELSE????? salary END???? "REVISED_SALARY"

FROM?? employees;

DECODE 函數

在需要使用 IF-THEN-ELSE 邏輯時 :

DECODE(col|expression, search1, result1

????? ????????????????? ???[, search2, result2,...,]

????? ????????????????? ???[, default])

SELECT last_name, job_id, salary,

???? ??DECODE(job_id, 'IT_PROG',? 1.10*salary,

????????????????????? 'ST_CLERK', 1.15*salary,

????????????????????? 'SA_REP',?? 1.20*salary,

????????????? salary)

?????? REVISED_SALARY

FROM?? employees;

嵌套函數

單行函數可以嵌套。

嵌套函數的執行順序是由內到外。

SELECT last_name,

?????? NVL(TO_CHAR(manager_id), 'No Manager')

FROM?? employees

WHERE? manager_id IS NULL;

總結

通過本章學習,您應該學會 :

使用函數對數據進行計算

使用函數修改數據

使用函數控制一組數據的輸出格式

使用函數改變日期的顯示格式

使用函數改變數據類型

使用 NVL 函數

使用 IF-THEN-ELSE 邏輯

?

Java喬曉松-oracle的單行函數(日期函數和數字函數)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 毛片在线视频观看 | 免费免费啪视频在线 | 添人人躁日日躁夜夜躁夜夜揉 | 一区二区在线不卡 | 加勒比色综合 | www.天天操| 中文字幕国产日韩 | 久久一本日韩精品中文字幕屁孩 | 欧美一区二区三区免费不卡 | 国产精品91久久久 | 亚洲第一精品在线 | 久久亚洲精品国产精品婷婷 | 中文字幕亚洲一区 | 九色91| 国产精品极品美女自在线看免费一区二区 | 欧美午夜a级限制福利片 | 男女在线观看啪网站 | 色婷婷视频 | 色婷婷成人做爰A片免费看网站 | 青青久久久国产线免观 | 99热久久国产精品免费看 | 久久精品国产999大香线焦 | 色人人| 欧美日韩一区二区三区在线观看 | 色综合天天综一个色天天综合网 | 国产成+人+亚洲+欧美+日韩 | 精品在线播放 | 午夜成人免费视频 | 色性综合 | 国产精品久久人妻无码网站蜜臀 | jizz日本女人 | 99成人| 懂色一区二区三区免费观看 | 五月天婷婷在线视频国产在线 | 69pao强力打造免费高清 | 亚洲成av人片在线观看 | 久久一级 | 亚洲视频在线观看地址 | 91精品国产综合久久青草 | 亚洲一二三在线 | 鲁丝片一区二区三区免费 |