Oracle中的Trim函數是一種非常有用的字符串函數,它可以去除一個字符串中的指定字符。
來看一個例子:假設有一個字符串 " hello world " ,我們使用Trim函數去除空格后,可以得到 "hello world"。
SELECT TRIM(' hello world ') FROM DUAL; -- 輸出結果為 "hello world"
從上面這個例子中我們可以看到,Trim函數非常便于去除字符串前后的空格。除了空格以外,Trim函數還支持去除其他字符,比如tab和回車等。
SELECT TRIM(BOTH '\t' FROM ' hello world ') FROM DUAL; -- 輸出結果為 "hello world"
同時,我們還可以使用Trim函數只去除字符串前面或后面的指定字符,而不是全部去除。
SELECT TRIM(LEADING '0' FROM '000012345') FROM DUAL; -- 輸出結果為 "12345" SELECT TRIM(TRAILING '0' FROM '012345000') FROM DUAL; -- 輸出結果為 "012345"
當然,如果我們不需要判斷具體要去除哪些字符,只需要去除字符串前后的所有空格,那么也可以使用關鍵字BOTH,這樣就不用明確聲明是前綴或后綴了。
SELECT TRIM(BOTH FROM ' hello world ') FROM DUAL; -- 輸出結果為 "hello world"
除了去除空格和其他指定字符,我們還可以去除字符串中間的指定字符。這時候,需要結合一下Replace函數同時使用。
SELECT REPLACE('123-45-6789', '-', '') AS REPAIRED_SSN FROM DUAL; -- 輸出結果為 "123456789" SELECT TRIM(BOTH '0' FROM REPLACE('0012-345.67', '-', '0')) FROM DUAL; -- 輸出結果為 "00123450"
有時候,我們可能需要把Trim函數嵌套在其他函數中,比如:將一個字符串中所有的字符轉成小寫后再去除前后空格
SELECT TRIM(LOWER(' HElLO ')) FROM DUAL; -- 輸出結果為 "hello"
總之,無論在什么場景下,Trim函數都是一個非常實用的字符串函數,它可以大大簡化我們對字符串的操作,并且減少代碼復雜度。