国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中Trim函數的使用方法

2024-08-29 13:28:28
字體:
來源:轉載
供稿:網友

TRIM函數最簡單的功能就是使用它來去除字符串的行首和行尾的空格,這個功能也是大家使用頻率最高的一種。然而在Oracle中TRIM函數其實是具有刪除“任意指定”字符的功能,下面就進行詳細地講解。

1.Oracle中trim函數的語法格式

TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)

以上語法引自于Oracle 10gR2官方文檔:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/img_text/trim.htm

單從這個語法定義上我們就可以看出,小小的TRIM函數蘊含了更多可定制的功能。

2.刪除字符串前后的空格

如果trim函數不使用任何參數時,可以去除字符串前后的空格

sec@ora10g> select trim (' SECOOLER ') "TRIM e.g." from dual;

TRIM e.g
--------
SECOOLER

這也是最常見的一種使用方法,都使用默認的參數,默認情況下TRIM會同時刪除字符串前后出現的空格。

3.both參數的使用方法

sec@ora10g> select trim (both from ' SECOOLER ') "TRIM e.g." from dual;

TRIM e.g
--------
SECOOLER

“BOTH”參數表示同時去除字符串前后所指定的內容(默認情況下刪除空格)。

4.“TRAILING”和“LEADING”參數的使用方法

sec@ora10g> select trim (trailing from ' SECOOLER ') "TRIM函數使用" from dual;

TRIM函數使用
------------
SECOOLER

sec@ora10g> select trim (leading from ' SECOOLER ') "TRIM函數使用" from dual;

TRIM函數使用
------------
SECOOLER

可見,使用“TRAILING”參數可以完成字符串尾部空格的刪除功能;而“LEADING”參數正好相反,完成字符串頭部空格的刪除功能。

也就是說,使用“TRAILING”和“LEADING”參數可以指定空格的刪除位置。

5.“trim_character”參數粉墨登場

這個參數改變了“刪除空格”的默認行為。

如果想要刪除字符串'xxxxSECOOLERxxxx'前后出現的“x”,“trim_character”參數就派上用場了。

sec@ora10g> select trim ('x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;

TRIM e.g
--------
SECOOLER

配合“BOTH”、“TRAILING”和“LEADING”三個參數使用效果如下,與之前演示類似。看結果,不贅述。

sec@ora10g> select trim (both 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;

TRIM e.g
--------
SECOOLER

sec@ora10g> select trim (trailing 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
xxxxSECOOLER

sec@ora10g> select trim (leading 'x' from 'xxxxSECOOLERxxxx') "TRIM e.g." from dual;

TRIM e.g.
------------
SECOOLERxxxx

6.需要注意的地方

這里的“trim_character”參數只允許包含一個字符,不支持多字符。

報錯信息如下:

sec@ora10g> select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual;
select trim (leading 'xy' from 'xyxxSECOOLERxyyx') "TRIM e.g." from dual

*
ERROR at line 1:
ORA-30001: trim set should have only one character

既然TRIM不能滿足我們刪除只剩“SECOOLER”字符串的要求。我們使用RTRIM和LTRIM“連環拳”完成這個任務。

1)使用RTRIM

sec@ora10g> select rtrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;

e.g.
------------
xyxxSECOOLER

2)使用LTRIM

sec@ora10g> select ltrim('xyxxSECOOLERxyyx','xy') "e.g." from dual;

e.g.
------------
SECOOLERxyyx

3)聯合使用RTRIM和LTRIM函數達到我們的目的

sec@ora10g> select ltrim(rtrim('xyxxSECOOLERxyyx','xy'),'xy') "e.g." from dual;

e.g.
--------
SECOOLER

使用RTRIM和LTRIM函數時的注意事項:“xy”不表示整個“xy”字符串進行匹配,而是發現任意的字符“x”或字符“y”均做刪除操作。

7.小結

在感受Oracle函數帶來便利的同時,建議對每一個常用函數都追本溯源地探究一下,也許在嘗試之后您會發現:哦,原來大家經常用到這些方法只是其真實功能的滄海一粟。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 右玉县| 石门县| 丁青县| 启东市| 五大连池市| 分宜县| 深水埗区| 施秉县| 渭源县| 开鲁县| 合水县| 布拖县| 天门市| 襄樊市| 无为县| 出国| 镇远县| 获嘉县| 武邑县| 金阳县| 南投市| 屯昌县| 高阳县| 甘洛县| 济源市| 雅江县| 五大连池市| 奇台县| 勃利县| 百色市| 平塘县| 西林县| 岐山县| 五华县| 陆川县| 论坛| 黎城县| 中山市| 中山市| 安陆市| 鄱阳县|