單行函數
①.字符函數
LOWER(x):將x中的每一個單詞都轉換成小寫
UPPER(x):將x中的每一個單詞都轉換成大寫
INITCAP(x): 將x中的每一個單詞的首字母轉換成大寫
CONCAT(x,y):用于將y添加到x以后,與||功能1樣
SUBSTR(x,start[,length]): 用于從x中獲得從start位置開始的1個子字符串,
可選參數length:指定子字符串的長度,若未給定,1直取到字符串的最后
LENGTH(x):返回x中字符的個數
INSTR(x,find_string[,start][,occurence]):在x中查找find_string,返回find_string所在的位置,
可選參數start:說明從x中的哪一個位置開始查找,第1個位置為1.
可選參數occurence:說明應當返回find_string第幾次出現的位置
LPAD(x, width [,pad_string]):用于將x的左側補齊空格,使總長度到達width個字符
可選參數pad_string:若給定,就將x的左側補齊pad_string字符
RPAD(x,width[,pad_string]):用于將x的右側補齊空格,使總長度到達width個字符
可選參數pad_string:若給定,就將x的右側補齊pad_string字符
TRIM(x[,trim_string]):用于從x的左右兩邊截去1些空格
可選參數trim_string:若給定,則從x的左右兩邊截去1些trim_string字符
REPLACE(x,search_string,repalce_string):用于在x中查找search_string,并將其替換為replace_string
②數字函數
4舍5入:ROUND(x[,y])用于計算對x取整結果
可選參數y:說明對第幾位小數取整,如果沒有指定y,則對x在0位小數處取整
如果y為負數,則對x在小數點的左側的第|y|位處取整
截斷:TRUNC(x[,y])用于計算對x截斷的結果
可選參數y:說明對第幾位小數截斷,如果沒有指定y,則對x在0位小數處截斷
如果y是負數,則對x在小數點的左側的第|y|位處截斷
求余:MOD(x,y):用于計算x除以y所得的余數
③日期函數
MONTHS_BETWEEN(date1,date2):兩個日期相差的月數
ADD_MONTHS(date1,addMonth):向指定日期中加上若干月數
NEXT_DAY(date1,'星期1'):返回下1個星期1的日期
LAST_DAY(date1):本月的最后1天
ROUND(date1,'year'):把date1按年4舍5入,month、day、hh、mi分別是按月、日、時、分,進行4舍5入
TRUNC(date,'month'):把date1按年截斷,month、day、hh、mi分別是按月、日、時、分,進行截斷
④轉換函數
TO_CHAR(date, 'format_model'):按format_model格式,格式化date:"yyyy-mm-dd HH24:MI:SS",返回1個字符串
TO_CHAR(number, 'format_model'):按format_model格式,格式化number:"$99,999.99",返回1個字符串
TO_DATE(char[, 'format_model']):使用 TO_DATE 函數將字符按format_model格式轉換成日期:"yyyy-mm-dd HH24:MI:SS"
TO_NUMBER(char[, 'format_model']):使用 TO_NUMBER 函數將字符按format_model格式轉換成數字:"$99,999.99"
⑤通用函數:這些函數適用于任何數據類型,同時也適用于空值
NVL (expr1, expr2):如果expr1為null,則返回expr2,若不為null,則返回expr1
NVL2 (expr1, expr2, expr3)如果expr1不為null,則返回expr2,若為null,則返回expr3
NULLIF (expr1, expr2):expr1與expr2相等返回NULL,不等返回expr1
COALESCE (expr1, expr2, ..., exprn):順次參考各參數表達式,遇到非null值即停止并返回該值。
如果所有的表達式都是空值,終究將返回1個空值。使用COALESCE在于大部份包括空值的表達式終究將返回空值。
⑥條件表達式
1)CASE 表達式
case..when..then..
Case表達式,是可以在sql中使用if ..then..else的邏輯判斷,而避免使用PL/SQL的有效方法。
在sql中主要有兩種:簡單case和搜索case,在plsql中還有兩種case 語句,與decode 類似。(有1定的區分)
簡單的case:
語法:case exp when comexp then returnvalue
..when comexp then returnvalue
Else Returnvalue
End
使用規則case簡介。
Case到end之間相當于1個具體的值,可以做運算,取別名,嵌套case 等等。只要把case到end當作1個運算結果的表達式就能夠了。
《注意,中間1直到end 都沒有其他標點符號》
搜索case:
SELECT cust_last_name,
CASE credit_limit WHEN 100 THEN ’Low’
WHEN 5000 THEN ’High’
ELSE ’Medium’
END
FROM customers;
搜索case例子
select case when id between 1 and 10 then 'low'
when id between 20 and 30 then 'mid'
when id between 40 and 50 then 'high'
else 'unknow'
end
from product;
update emp set
salary=
case when salary<2000 then salary*1.1
when salary between 2000 and 4000 then salary*1.05
when salary>4000 then salary*1.04
else
null
end;
select case when name like '全球%' then 'true'
when name like '神州行' then 'false'
else 'mm'
end
from trademark;
比較操作,可使用like,between … and ..,!=,<,>=等操作符和其他返回boolean類型的操作符。
簡單case和searched case之間的區分:
1. 簡單case只能是when后面的表達式完全匹配case后的表達式,相當于 =,所以也不能匹配null。
2. searched case可以作為比較條件,那末可使用like,!=,between ..and,<,=,is null,is not null等,比簡單case的使用更加廣泛,完全可以替換簡單case。
2)DECODE 函數
DECODE 中的if-then-else邏輯
在邏輯編程中,常常用到If
上一篇 【SSH學習筆記】―從配置Struts1環境到簡單實例
下一篇 當程序員老去