oracle總結(二) 單行函式

2021-06-21 03:01:32 字數 4073 閱讀 8716

單行函式:對單行資料進行計算並返回乙個值的函式。 

修改資料項 

接受引數返回乙個值。 

對每行進行操作。 

每行返回乙個結果。 

可以修改資料型別 

可以巢狀

character 字元型別函式

lower()強制小寫 

upper()強制大寫 

initcap()每個單詞首字母大寫,可以用在 where 子句中。 

concat(『』,『』)連線函式

substr(string,a[,b])返回 string 的一部分,a 和 b 以字元為單位。 

substrb(string,a[,b])返回 string 的一部分,a 和 b 是以位元組為單位。 

substrc(string,a[,b])返回 string 的一部分,a 和 b 是以 unicode 完全字元為單位。 

substr2(string,a[,b])返回 string 的一部分,a 和 b 是以 ucs2 **點為單位。 

substr4(string,a[,b])返回 string 的一部分,a 和 b 是以 ucs4 **點為單位。 

以上函式都是返回 string 的一部分,從字元位置 a 開始,長為 b 個字元。如果 a 是 0,那它就

被認為是 1(字串的開始位置)。如果 a 是正數,那麼字元從左邊開始數。如果是負數,則從 string

的末尾開始,從右邊數。如果 b 不存在,那麼預設是整個字串。如果 b 小於 1,將返回 null。如

果 a 或 b 使用了浮點數,那麼該數值首先被節取成乙個整數,返回型別與 string 相同。

length(string) 

lengthb(string) 

lengthc(string) 

length2(string) 

length4(string) 

以上函式返回 string 的長度。因為 char 型別的值是填充空格的,所以如果 string 是 char 數

據型別,那麼末尾的空格算在長度之內。如果 string 是 null,函式返回 null。

instr(string1,string2[,a][,b]) 返回 string1 中包含 string2 的位置。 a 和 b 以字元為單位。

instrb(string1,string2[,a][,b]) 返回 string1中包含 string2 的位置。a 和 b 是以位元組為單位.

instrc(string1,string2[,a][,b])返回 string1 中包含 string2 的位置。a 和 b 是以 unicode完全字元為單位。 

instr2(string1,string2[,a][,b]) 返回 string1 中包含 string2 的位置。a 和 b 是以 ucs2**點為單位

instr4(string1,string2[,a][,b]) 返回 string1 中包含 string2 的位置 a 和 b 是以 ucs4**點為單位.

以上函式返回 string1 中包含 string2 的位置。從左邊開始掃瞄 string1,起始位置是 a。如果

a 為負數那麼從右邊開始掃瞄。第 b 次出現的位置將被返回。a 和 b 預設都為 1,即返回在 string1

中第一次出現 string2 的位置。如果 string2 在 a 和 b 的規定下沒有找到那麼就返回 0。位置的計

算是相對於 string1 的開始位置的,而不關 a 和 b 的取值。

lpad(列名,數字,『要補上的字元』)左補位 

rpad(列名,數字,『要補上的字元』)右補位 

trim(『child_str』 from 『parents_str』)將連續子串(只能有乙個字元)從主串的兩邊擷取出來,區分大小寫。預設為擷取空格。 

ltrim()左擷取 

rtrim()右擷取

ltrim(x,y) 函式是按照y中的字元乙個乙個截掉x中的字元,並且是從左邊開始執行的,只要遇到y中有的字元, x中的字元都會被截掉, 直到在x的字元中遇到y中沒有的字元為止函式命令才結束.(ririm同理)

ascii(x)函式,返回'x'字元的十進位制數,即 x 的 ascii 碼值。

chr(x)函式,返回 ascii 碼為 x 的字元。 

length(x)函式,求串 x 的長度,與之相似的是 lengthb(x)函式,用在多位元組字元中。

replace(x,y[,z])函式,返回值為將串 x 中的 y 串用 z 串替換後的結果字串。若省略 z 引數,則將串 x 中為 y 串的地方刪除。

soundex(x)函式,返回串 x 的語音描述,這個描述由 4 個字元組成,說明串 x 的聲音表示形式發音,有時在只知道乙個名字的發音而不知道拼寫情況下或許能用到。

例:select soundex('smith') from dual; 返回值為:s530.

translate(x,y,z)函式,返回將 x 串中每個字元按它在 y 串中出現的位置翻譯成 z 串中相應位置的字元後的結果,相當與替換。

例:select translate('this is an example','my is','@#$%^&') from dual;

convert(string,dest_charset[,source_charset]) 

將輸入 string 轉換為指定字符集 dest_charset。source_charset 是輸入值的字符集——如果

它沒有被指定,則預設為資料庫字符集。輸入值可以是 char、varchar2、nchar、nvarchar2、clob

和 nclob 型別。返回值為 varchar2型別。如果 dest_charset 中沒有輸入字串中的乙個字元,將

會使用乙個代替字元(由 dest_charset 定義) 

nchr(x)

返回資料庫國家字符集中值為 x 的字元。nchr(x) 等價於 chr(xusing nchar_cs). 單行函式

nls_charset_decl_len(byte_width,charset) 

返回乙個 nchar 值的宣告寬度(以字元為單位).byte_width 是該值以位元組為單位的長度 charset 是該值的字符集 id。 

nls_charset_id(charset_name) 

返回指定字符集 charset_name 的數字 id。為 charset_name 指定「char_cs」將返回資料庫字符集的 id,為 charset_name 指定「nchar_cs」將返回資料庫國家字符集

的 id。如果 charset_name 是乙個無效字符集名,將返回null。nls_charset_id和 nls_charset_name 是互為反函式。 

nls_charset_name([charset_id]) 

返回指定字符集 id charset_id 的名字。如果 charset_id 是乙個無效字符集 id,將返回 null; 

nls_initcap(string[,nlsparams]) 

以字串中每個單詞第乙個字元大寫而單詞中其餘字母小寫的形式返回 string.nlsparams 指定了乙個與該會話預設的不同的排序次序。如果沒有指定該引數,

nls_initcap 與 initcap 相同。nlsparams 應該採取下面的形式:'nls_sort=sort',其中 sort 是乙個語言排序序列。 

nls_upper(string[,nlsparams]) 

以大寫形式返回 string,不是字母的字元不受影響。如果沒有指定 nlsparams,nls_upper 與 upper相同。 

nls_lower 

以小寫形式返回 string,不是字母的字元不受影響,如果沒有指定 nlsparams,nls_lower 與 lower相同。 

nlssort(string[,nlsparams]) 

返回用於排序 string 的字串位元組。所有值都被轉換為位元組字串,這樣在不同資料庫之間就保持了一致性。如果沒有指定 nlsparams,那麼就會使用會話中預設排序序

列。 unstr(s) 

返回轉換為資料庫 unicode 字符集的字串。s 可包含 escaped ucs2 **點字元。它由乙個反斜線符號加上十六進製制**點數字組成。因此,要在字串中包含乙個

反斜線符號就必須使用雙反斜線符號(\\). 

oracle單行函式

1.字元函式 upper 全大寫 lower 全小寫 initcap 首字母大寫 length 取長度 substr 擷取字串 replace 替換 2.數值函式 round 四捨五入 trunc 擷取 mod 取餘 3.日期函式 當前日期 sysdate 日期 數字 日期 日期 數字 日期 日期 ...

oracle單行函式

單行函式 函式類別 單行 返回單個結果 substr,length 多行 返回多個結果,any,all 單行的分類 字元類,日期類,數字類,轉換類,通用類 1.字元類 轉換大小寫 lower 轉換為小寫 select ename,lower ename from emp upper 轉換為大寫 se...

Oracle單行函式

單行函式 運算元據物件,接受引數返回乙個結果,只對一行進行變換,每行返回乙個結果,可以轉換資料型別,可以巢狀,引數可以是一列或乙個值 一 字元函式 concat 字串連線,相當於 initcap 將引數的第乙個字母變為大寫 lower 將引數轉換為全部小寫字母 upper 將引數轉換為全部大寫字母 ...