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