TRIM(
[ [ { LEADING | TRAILING | BOTH } [ trim_character ] ]
| trim_character
] FROM
trim_source
)
LEADING:僅移除前導字元。TRAILING:僅移除尾隨字元。BOTH(預設):同時移除前導與尾隨字元。trim_character:要移除的單一字元,省略時預設為空白鍵。trim_source:目標字串。SELECT TRIM(' DWEYE ') FROM dual; --> 'DWEYE'
SELECT TRIM(BOTH FROM ' DWEYE ') FROM dual; --> 'DWEYE'
SELECT TRIM(TRAILING FROM ' DWEYE ') FROM dual; --> ' DWEYE'
SELECT TRIM(LEADING FROM ' DWEYE ') FROM dual; --> 'DWEYE '
SELECT TRIM('x' FROM 'xxxxDWEYExxxx') FROM dual; --> 'DWEYE'
-- 等同於
SELECT TRIM(BOTH 'x' FROM 'xxxxDWEYExxxx') FROM dual;
SELECT TRIM(TRAILING 'x' FROM 'xxxxDWEYExxxx') FROM dual; --> 'xxxxDWEYE'
SELECT TRIM(LEADING 'x' FROM 'xxxxDWEYExxxx') FROM dual; --> 'DWEYExxxx'
-- 錯誤:ORA-30001: trim set should have only one character
SELECT TRIM(LEADING 'xy' FROM 'xyxxDWEYExyyx') FROM dual;
-- RTRIM 移除右側所有出現在 'xy' 中的字元
SELECT RTRIM('xyxxDWEYExyyx', 'xy') FROM dual; --> 'xyxxDWEYE'
-- LTRIM 移除左側
SELECT LTRIM('xyxxDWEYExyyx', 'xy') FROM dual; --> 'DWEYExyyx'
-- 疊加達成雙向多字元修剪
SELECT LTRIM(RTRIM('xyxxDWEYExyyx', 'xy'), 'xy') FROM dual; --> 'DWEYE'
注意: LTRIM/RTRIM 的第二參數是「字元集合」,而非子字串。只要字元出現在集合中即會被移除,順序無關。
TRIM 為標準 SQL,跨資料庫可攜性最好。TRIM(col) 最簡潔。TRIM(',' FROM col) 可讀性佳。LTRIM/RTRIM 疊加。TRIM 會導致索引失效,若頻繁查詢建立函數索引 CREATE INDEX idx_trim_col ON tbl(TRIM(col))。