[英]how to get 8 characters in a string after joining two words in oracle sql
在通過查找和替換刪除的空格“unitedstatesofamerica”替換兩個字符串示例“美國”的空格后,我需要獲得前 8 個字符,但在刪除空格后我需要最多 8 個字符串,即“unitedst”請幫助我
我想你只想要substr()
:
select substr(replace(col, ' ', ''), 1, 8)
一種選擇是在REGEXP_REPLACE()
函數中使用[[:space:]]
POSIX 以刪除所有空白字符,包括不可打印的字符,例如
SELECT SUBSTR( REGEXP_REPLACE(col,'[[:space:]]'), 1, 8) AS col
FROM t -- your original table
如果您需要刪除所有空格(空格、制表符、換行符),那么您想使用正則表達式來替換空格,然后您可以使用SUBSTR
查找前 8 個字符:
SELECT SUBSTR(REGEXP_REPLACE(col, '\s+'), 1, 8)
FROM table_name
其中,對於測試數據:
CREATE TABLE table_name ( col ) AS
SELECT 'United States of America' FROM DUAL UNION ALL
SELECT 'ABCDEFGHIJKLM' FROM DUAL UNION ALL
SELECT 'A B' || CHR(9) || 'C' || CHR(13) || CHR(10) || 'D E F G H I J K L M' FROM DUAL;
輸出:
\n | SUBSTR(REGEXP_REPLACE(COL,'\\S+'),1,8) |\n | :------------------------------------ |\n | 美國 |\n | ABCDEFGH |\n | ABCDEFGH |\n
db<> 在這里擺弄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.