Oracle 內建函式二

tangyunoracle發表於2010-11-16

Ø LAST_DAY

函式LAST_DAY返回實引數指定日期對應月份的最後一天。

SQL> SELECT LAST_DAY(SYSDATE),LAST_DAY(SYSDATE-10) FROM DUAL;

LAST_DAY(SYSDATE) LAST_DAY(SYSDATE-10)

----------------- --------------------

2010-10-31 19:59: 2010-10-31 19:59:58

Ø LEAST

LEAST函式返回一數值列表中的最高數值。可使用LEAST函式處理數字資料和字元資料。

這裡需要注意的是以第一個引數來判斷引數是字元型還是數值型。

SQL>SELECT LEAST('12',102,-12,0,'-15'),LEAST(12,'102',-12,0,'-15') FROM DUAL;

SQL> SELECT LEAST('12',102,-12,0,'-15') FROM DUAL;

LEAST('12',102,-12,0,'-15')

---------------------------

-12

SQL> SELECT LEAST(12,102,-12,0,'-15') FROM DUAL;

LEAST(12,102,-12,0,'-15')

-------------------------

-15

Ø LENGTH/ LENGTHB

LENGTH/ LENGTHB函式返回字串的長度。

SQL> SELECT LENGTH('湯雲'),LENGTHB('湯雲') FROM DUAL;

LENGTH('湯雲') LENGTHB('湯雲')

-------------- ---------------

2 4

Ø LN

函式LN返回一數值的自然對數。

SQL> SELECT LN(10),EXP(2.30258509) FROM DUAL;

LN(10) EXP(2.30258509)

---------- ---------------

2.30258509 9.9999999700595

Ø LOG

LOG函式返回數值的非自然對數。

LOGlogbase,number

SQL> SELECT LOG(10,100),LOG(3,27) FROM DUAL;

LOG(10,100) LOG(3,27)

----------- ----------

2 3

Ø LOWER

函式LOWER返回引數指定字串的小寫形式。

SQL> SELECT LOWER('TANG yuN tanGYUN') FROM DUAL;

LOWER('TANGYUNTANGYUN')

-----------------------

tang yun tangyun

Ø LPAD

LPAD函式從左面填充指定的字串。

SQL> SELECT LPAD('TANGYUN',12,'*') FROM DUAL;

LPAD('TANGYUN',12,'*')

----------------------

*****TANGYUN

Ø LTRIM

LTRIM函式刪除字串左邊的字首字元。一般字首字元總是空格。

左邊單個字元單個字元的去除。這裡是用單個字元去匹配,並不是用兩個字元去匹配,但是必須是在最左邊

SQL> SELECT LTRIM('****TANGYUN') "TRIM",LTRIM('***!*!***TANGYUN','*!') "TRIM" FROM DUAL;

TRIM TRIM

----------- -------

****TANGYUN TANGYUN

Ø MOD

MOD函式返回一個數除以另一數的餘數。

如果除數為0則返回原來的數

SQL> SELECT MOD(20,3),MOD(20,0),MOD(20,2) FROM DUAL;

MOD(20,3) MOD(20,0) MOD(20,2)

---------- ---------- ----------

2 20 0

Ø MONTHS_BETWEEN

MONTHS_BETWEEN函式返回兩個日期之間的月份數,不整除時候返回小數,以31為基數。

SQL> SELECT MONTHS_BETWEEN(TO_DATE('2010-09-21','YYYY-MM-DD'),TO_DATE('2010-10-31','YYYY-MM-DD')) FROM DUAL;

MONTHS_BETWEEN(TO_DATE('2010-0

------------------------------

-1.32258064516129

Ø NEW_TIME

NEW_TIME該函式用於返回時區一的日期時間所對應的時區二的日期時間。

其具體的語法格式如下:NEW_TIMEdate,oldzone,newzone

其中:date一日期數值。在Oracle中,除其自己以外,所有日期數值都有時間和記號這樣的成分oldzone 代表時區的字串。有效的時區如表所示。被推算 出的日期數值就在該時區當中newzone 也是代表時區的字串。被從老時區到新時區轉換的日期數值

下面是該函式的使用情況:

SQL> SELECT SYSDATE+6/24,NEW_TIME(SYSDATE+6/24,'EST','PST')"NEW_TIME" FROM DUAL;

SYSDATE+6/24 NEW_TIME

------------ -----------

2010-11-1 2: 2010-10-31

Ø NEXT_DAY

NEXT_DAY函式返回從實參日期開始,緊隨其後的指定星期對應的日期。

NEXT_DAY(date,weekday

SQL> SELECT NEXT_DAY(SYSDATE,7) FROM DUAL;

NEXT_DAY(SYSDATE,7)

-------------------

2010-11-6 20:29:05

這裡的7表示星期天,要和自己伺服器上的周對應。

有的伺服器上是下面這種情況:

SQL> SELECT NEXT_DAY(SYSDATE,'FRI') FROM DUAL;

NEXT_DAY(SYSDATE,'FRI')

-------------------

2010-11-6 20:29:05

Ø NLS_INITCAP(CHAR,’NLS_PARAM’)

該函式用於將字串CHAR的首字元大寫,其他字元小寫,其中CHAR用於指定NCHAR或者NVARCHAR2型別字串,其中前面加上n,用單引號括起來,NLS_PARAM格式“NLS_SORT=SORT”,用於指定特定語言的特徵。

SQL> SELECT NLS_INITCAP(n'TANG YUN!') FROM DUAL;

NLS_INITCAP(N'TANGYUN!')

------------------------

Tang Yun!

Ø NLS_LOWER(CHAR,’NLS_PARAM’)

該函式用於將字串CHAR轉換成小寫,其中CHAR用於指定NCHAR或者NVARCHAR2型別字串,其中前面加上n,用單引號括起來,NLS_PARAM格式“NLS_SORT=SORT”,用於指定特定語言的特徵。

SQL> SELECT NLS_LOWER(n'TANG YUN!') FROM DUAL;

NLS_LOWER(N'TANGYUN!')

----------------------

tang yun!

Ø NLS_SORT(CHAR,’NLS_PARAM’)

該函式用於按照特定語言的要求進行排序,其中CHAR用於指定NCHAR或者NVARCHAR2型別字串,其中前面加上n,用單引號括起來,NLS_PARAM格式“NLS_SORT=SORT”,用於指定特定語言的特徵。

按筆畫排序:

SQL> SELECT name FROM (SELECT '' name FROM DUAL UNION SELECT '' name FROM DUAL) ORDER BY NLSSORT(name,'NLS_SORT=SCHINESE_STROKE_M');

NAME

----

按拼音排序:

SQL> SELECT name FROM (SELECT '' name FROM DUAL UNION SELECT '' name FROM DUAL) ORDER BY NLSSORT(name,'NLS_SORT=SCHINESE_PINYIN_M');

NAME

----

按部首排序:

SQL> SELECT name FROM (SELECT '' name FROM DUAL UNION SELECT '' name FROM DUAL) ORDER BY NLSSORT(name,'NLS_SORT=SCHINESE_RADICAL_M');

NAME

----

Ø NLS_UPPER(CHAR,’NLS_PARAM’)

該函式用於將字串CHAR轉換成大寫,其中CHAR用於指定NCHAR或者NVARCHAR2型別字串,其中前面加上n,用單引號括起來,NLS_PARAM格式“NLS_SORT=SORT”,用於指定特定語言的特徵。

SQL> SELECT NLS_UPPER(n'tang yun!') FROM DUAL;

NLS_UPPER(N'TANGYUN!')

----------------------

TANG YUN!

Ø NVL

NVL函式需要兩個引數。如果第一個引數為空,則返回第二個引數。否則會返回第一個引數。

SQL> SELECT NVL(NULL,'NONE'),NVL('NOT NULL','NONE') FROM DUAL;

NVL(NULL,'NONE') NVL('NOTNULL','NONE')

---------------- ---------------------

NONE NOT NULL

Ø NVL2

NVL2函式需要三個引數。如果第一個引數為空,則返回第三個引數。否則返回第二個引數。

SQL> SELECT NVL2(NULL,1,2) FROM DUAL;

NVL2(NULL,1,2)

--------------

2

SQL> SELECT NVL2(0,1,2) FROM DUAL;

NVL2(0,1,2)

-----------

1

Ø NULLIF

表示式需要兩個參數列達式,如果兩個參數列達式相等則返回NULL,如果兩個參數列達式不相等則返回第一個參數列達式。

SQL> SELECT NULLIF(2+3,5) FROM DUAL;

NULLIF(2+3,5)

-------------

SQL> SELECT NULLIF('a','A') FROM DUAL;

NULLIF('A','A')

---------------

a

Ø POWER

函式POWER返回一個數值的指定次冪。POWER(number,power)

SQL> SELECT POWER(3,2),POWER(2,3) FROM DUAL;

POWER(3,2) POWER(2,3)

---------- ----------

9 8

Ø RAWTOHEX

RAWTOHEX函式將一raw轉換成十六進位制字元表示的串值。

其具體的語法格式如下:

RAWTOHEXraw_value

其中:raw_valueRAW型數值

下面是該函式的使用情況:

SQL>CREATE TABLE xx(y raw(10));

Table created.

SQL>INSERT INTO xx VALUES(HEXTORAW(‘414243’));

1 row created.

SQL>SELECT RAWTOHEX(y) FORM xx;

RAWTOHEX(Y)

------

414243

[@more@]

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

相關文章