SG_007_CHAPTER 3(1)

chenai79921發表於2009-10-11

NULL Value (NVL): nvl(x1,x2)

如果x1是為空,返回x2。如果x1不為空,則返回x1.

NULL Value 2 (NVL2)nvl2(x1,x2,x3)

如果x1為空,返回x3.如果x1不為空,返回x2.

ASCII把字元轉換為asc碼。

例如:

Select ASCII(‘A’)

FROM DUAL;

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

65

CHR: 把二進位制碼轉換為字元。

例如:

Select CHR(65)

FROM DUAL;

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

A

CONCAT(,):返回c1||c2

如果c1為空,則返回c2. 如果c2為空,則返回c1.如果全為null,則返回null

INITCAP

例子

Select INITCAP(‘the three’)

From dual;

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

The Three

INSTR:

Instr(,[,[,]])

為從第幾個字元開始,為經歷了幾次c2C1c2為字串。若i為負值,則從右往左開始計數。

例如:select instr(‘Mississippi’,’i’,3,3),

Instr(‘Mississippi’,’i’,-2,3)

From dual;

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

11 2

LENGTH

Length(‘the the’) 返回長度

LENGTHB

返回byte

LOWER

返回小寫

LPAD

LPAD(c1,i,c2) 填充到i,以c2為填充內容,再返回c1

例子:LDAPanswer,7,’.’

….yes

LTRIM:

LTRIM(C1,C2):返回c1,其中c1第一個字元不能是c2中的字元。如果c2為空,那麼直接返回c1.

RPAD

RPAD(c1,i,c2):c2字元,把c1填充到i的數量。

RTRIM:

LTRIM,方向向右。

REPLACE:

REPLACE(c1,c2,c3):返回c1,其中c2c1中的相同內容,使用c3來代替。

SUBSTR:

Substr(c1,x,y): 返回位置x到位置yc1中的部分字串,

C1為字串,xy為整數。

TRANSLATE:

TRANSLATE(c1,c2,c3): 返回c1c1c2的字串使用c3來(逐個)代替。

例子:

Select TRANSLATE(‘fumble’,’uf’,’aR’) test1,

TRANSLATE(‘Mississippi’,’Mis’,’mIS’) test3,

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

Ramble MISSISSIppI

TRIM:

TRIM(c1 c2 c3) c2c3是字串,c1可以是“LEADING, 或者 TRAILING,

返回c3除去c2中的字串。c1預設是BOTHc2預設是空格。

Upper

UPPER():返回大寫。

ABS()返回絕對值。

CEIL()返回大於n的一個整數值。

FLOOR():返回小於n的一個整數值。

MOD(,)返回n1除以n2的餘數。

Power(,):返回n1n2次方。

ROUND(,)返回約數。

例子:ROUND(12345,-2)

ROUND(12345.54321,2)

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

12300 12345.54

SIGN()n為正數返回1n為負數返回-1n0返回0.

SQRT()返回n的開根號數。

TRUNC(,)功能同ROUND

改變NLS格式:

ALTER SESSION SET NLS_DATE_FORMAT=’DD-MON-YYYY HH24:MI:SS’

ADD_MONTHS(,):d為日期,i為整數。返回d為日期加上i個月。

CURRENT_DATE:返回當前會話的日期。

CURRENT_TIMESTAMP([

]) :

返回當前日期和時間,秒預設為6位,時區。

DBTIMEZONE:返回資料庫的時區。用ALTER DATABASE修改之後,重啟資料庫才生效。

EXTRACT( FROM

)

例子:

SELECT SYSDATE

,EXTRACT(YEAR FROM SYSDATE) YEAR

,EXTRACT(MONTH FROM SYSTIMESTAMP) MONTH

,EXTRACT(TIMEZONE_HOUR FROM SYSTIMESTAMP) TZH

FROM dual

SYSDATE YEAR MONTH TZH

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

24-SEP-2002 05:04:26 2002 9 - 5

LAST_DAY()返回d日期中當月的最後一天。

LAST_DAY()+1 返回下個月的第一天。

LOCALTIMESTAMP( [] ): 返回日期,時間,秒(預設6位)

型別為TIMESTAMP,不返回時區。

MONTHS_BETWEEN(,):返回d1 減去 d2,得到的月份數。可能有小數點。

NEXT_DAY():返回d日期下一個dow(日期片段)的日期。

ROUND( [ , ] ):返回d時間,精確到fmt的時間顆粒。

SESSIONTIMEZONE:返回連線的時區。

SYSTIMESTAMP:返回日期,時間,秒精確到6位數,時區。

TRUNC( [ , ] ) : 擷取當前d時間的當前時間片fmt的第一天。

BIN_TO_NUM ( ) : 2進位制轉換到10進位制。

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

Select BIN_TO_NUM(1,1,0,1)

From dual;

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

13

[@more@]

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

相關文章