簡體   English   中英

在oracle sql中連接兩個單詞后如何獲取字符串中的8個字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM