官术网_书友最值得收藏!

5.1 字符函數(shù)

字符函數(shù)指用于對字符表達式進行處理的函數(shù),它也是Oracle系統(tǒng)中被廣泛使用的函數(shù)。在使用字符串函數(shù)時,其輸入值一般是字符數(shù)據(jù)類型的,而其輸出結果則是經(jīng)過處理的字符表達式。

5.1.1 字符函數(shù)概述

在Oracle系統(tǒng)中,函數(shù)使用下列語法格式來表示。

     FUNCTION(sting [, option])

上述代碼中,函數(shù)本身為大寫狀態(tài),其參數(shù)為小寫狀態(tài)。sting參數(shù)表示文本字符串或字符串列的名稱,其中文本字符串需要使用單引號括起來;而參數(shù)option為非必選參數(shù)。

例如,使用轉換大小寫的函數(shù)LOWER,其語法格式為:

     LOWER(sting)

如若轉換某個具體字符串,則需要將字符串放置在函數(shù)的位置,例如:

     LOWER('CMT')

此時,該函數(shù)的輸出結果為“CMT”。由于直接使用了字符串,所以需要使用單引號括起來。除此之外,該函數(shù)還可以直接使用表列名稱進行轉換,使用列名稱時無須使用單引號。

一般情況下,用戶可以使用的字符函數(shù)如下表所示。實際上,這些字符函數(shù)在許多編程語言中都可以使用。

5.1.2 常用的字符串函數(shù)

為了更好地理解這些字符函數(shù),下面通過一些常用函數(shù)示例,詳細介紹字符函數(shù)的用法。

1. ASCII()和CHR()函數(shù)

ASCII()函數(shù)可以返回某個字符的ASCII碼值;CHR()函數(shù)則與其相反,它返回給出ASCII碼值所應的字符。這兩個函數(shù)在判斷某個字符時經(jīng)常會用到。

下面的示例演示了ASCII()和CHR()函數(shù)的使用方法。

如果在ASCII()函數(shù)中包含了多個字符,則只返回第一個字符的ASCII值。

2. CONCAT()函數(shù)

CONCAT(X,Y)函數(shù)用于連接字符串X和Y,并形成新的字符串。這種連接是緊密連接,兩個字符串的連接之間沒有空格等分隔字符。

下面的示例使用CONCAT()函數(shù)把EMP表中的MGR和JOB列連接起來。

3. INITCAP()函數(shù)

INITCAP(X)函數(shù)表示把字符串X中的所有英文單詞轉換為首字母大寫的形式。不過,這種函數(shù)對漢字沒有影響。

例如,下面的示例為對字符串進行處理,將字符串的第一個字母變?yōu)榇髮憽?/p>

4. INSTR()函數(shù)

INSTR(X,F(xiàn)IND_STRING[,START][,OCCURRENCE])函數(shù)在字符串X中搜索FIND_STRING字符,并返回其位置。如果使用了可選參數(shù)START和OCCURRENCE,那么表示從START位置開始當?shù)贠CCURRENCE次返回FIND_STRING字符串時才返回其位置。

例如,下面的示例將搜索字符A的位置。

5. LOWER()和UPPER()函數(shù)

LOWER(X)和UPPER(X)函數(shù)也是一對常用的函數(shù),前一個函數(shù)將字符串X轉變成小寫字母,后一個函數(shù)則相反,將字符串X全部轉變?yōu)榇髮懽帜浮?/p>

例如,下面的語句分別使用LOWER()和UPPER()函數(shù),將數(shù)據(jù)轉換成小寫字母和大寫字母。

6. LTRIM()、RTRIM()和TRIM()函數(shù)

LTRIM()、RTRIM()和TRIM()函數(shù)都是用來刪除指定字符串周圍的字符的。LTRIM(X[,TRIM_STRING])函數(shù)用于刪除字符串X左邊的字符,如果使用了可選的TRIM_STRING參數(shù),那么將刪除字符串X左邊的TRIM_STRING字符串;如果沒有指定TRIM_STRING參數(shù),那么刪除字符串X左邊的空格。RTRIM()函數(shù)與此類似,只是方向在右邊。TRIM()函數(shù)則刪除字符串兩端的字符串。

例如,下面的語句分別使用LTRIM()、RTRIM()和TRIM()函數(shù)處理字符串。

7. RPAD()和LPAD()函數(shù)

RPAD()函數(shù)用于填充列右側的字符,其填充字符為任意字符,其語法格式為:

     RPAD(string,length[, 'set'])

而LPAD()函數(shù)則用于填充列左側的字符,其填充字符為任意字符。

     LPAD(string,length[, 'set'])

在上述語法格式中,參數(shù)string表示字符或字符類型的列,參數(shù)length表示字符長度,而參數(shù)set則表示需要填充的字符。如果省略方括號中的內容,該函數(shù)則會直接填充空格。

例如,下面的語句中將使用RPAD()函數(shù),在表列的右側填充長度為5的虛點。

8. LENGTH()函數(shù)

LENGTH()函數(shù)用于返回指定字符串的長度,長度值包含字母、空格和任何其他字符。

例如,下面的語句中使用了LENGTH()函數(shù),返回了REPORT_DTE列中字符串的長度。

提示:

LENGTH()函數(shù)還可以作為WHERE或ORDER BY子句,以及其他函數(shù)一部分參與計算。

9. SUBSTR()函數(shù)

SUBSTR()函數(shù)用于提取指定字符串中的部分字符串,該函數(shù)的語法格式為:

     SUBSTR(string,start[, count])

上述語法格式中,參數(shù)string表示指定的字符串,參數(shù)start表示提取字符串的起始位置,參數(shù)count表示字符串的長度,如果省略count,該函數(shù)將從start位置提取到字符串末尾。

例如,下面的語句中使用了SUBSTR()函數(shù),提取了REPORT_DTE列中字符串的第二個字符后的4個字符。

      SQL> select substr(report_dte,2,4) from report;

      SUBSTR(R
      --------
      8-9月
      8-9月
      7-9月
      7-9月
      6-9月
      6-9月
      7-9月
      7-9月

      已選擇8行。
主站蜘蛛池模板: 城口县| 库车县| 昌邑市| 渝北区| 濉溪县| 通江县| 临漳县| 上蔡县| 乃东县| 富蕴县| 沙湾县| 金沙县| 平乡县| 阳高县| 焉耆| 柏乡县| 巴塘县| 绩溪县| 兰坪| 汽车| 营山县| 山东省| 阿鲁科尔沁旗| 嵊州市| 南皮县| 合阳县| 武汉市| 铜山县| 宣武区| 竹溪县| 双流县| 鱼台县| 卓尼县| 阜南县| 舟曲县| 家居| 杭州市| 贺兰县| 阿勒泰市| 宜阳县| 卓尼县|