簡體   English   中英

Oracle使用單個空格更新列中的多個空格

[英]Oracle update multiple spaces in a column with a single space

我正在嘗試使用普通的sql語句更新一個可能只有一個空格或多個空格的列到一個單獨的空間而不是pl sql

我可以通過更新表set column_name =''執行此操作,其中column_name類似'%%'但是,可能會有一些數據,例如該列中的abc def。 我不想打擾那些數據的模式,這意味着如果只想在列填充空白區域而不是觸摸有任何數據的列時才這樣做。

我建議使用正則表達式來執行此操作,以進行替換並進行匹配:

UPDATE mytable
   SET mycolumn = REGEXP_REPLACE(mycolumn, '\s{2,}', ' ')
 WHERE REGEXP_LIKE(mycolumn, '\s{2,}')

這將用一個空格替換兩個或多個連續的空白字符(空格,制表符等)。 如果您只想替換空格而不是制表符,回車符或換行符,請使用以下命令:

UPDATE mytable
   SET mycolumn = REGEXP_REPLACE(mycolumn, ' {2,}', ' ')
 WHERE REGEXP_LIKE(mycolumn, ' {2,}')

使用{2,}的原因是我們不打擾替換不需要的空格。

使用正則表達式:

update table set column=regexp_replace(column, ' +', ' ')

嘗試:

update mytable
set col = ' '
where replace (col, ' ', null) is null;

我用regexp_like來解決這個問題

update table set column =''where where in(select table from table rearxp_like('column','^ \\ s + $')

謝謝

嘗試這個:

  update product set name = replace(name, '  ', ' ') where name like '%  %';

其中replace表達式的第二個參數和like('%%')包含兩個空格

就我而言,結果是:

TENIS  NIKE  AIR => TENIS NIKE AIR
TENIS  NIKE  MAN => TENIS NIKE MAN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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