【发布时间】:2012-12-14 01:42:48
【问题描述】:
我正在尝试编写一个删除所有空格的 SQL 查询,这样如果一个字符串只有空格,那么最终的字符串就是 ''。
我已经尝试过这段代码,但显然它不能用于多个空间:
regexp_replace(:P14_search_text, '( ){1,}', '')
正在 :P14_search_text 我要修改的字符串。
有什么帮助吗?
【问题讨论】:
我正在尝试编写一个删除所有空格的 SQL 查询,这样如果一个字符串只有空格,那么最终的字符串就是 ''。
我已经尝试过这段代码,但显然它不能用于多个空间:
regexp_replace(:P14_search_text, '( ){1,}', '')
正在 :P14_search_text 我要修改的字符串。
有什么帮助吗?
【问题讨论】:
怎么样:
regexp_replace(:P14_search_text, '[[:space:]]*', '');
【讨论】:
试试这个:
Select Replace(:P14_search_text, ' ', '');
【讨论】:
希望对你有帮助,
SELECT REGEXP_REPLACE(' Any String ','( ){1,}','') "REGEXP_REPLACE" FROM DUAL;
SELECT REGEXP_REPLACE(' ','( ){1,}','') "REGEXP_REPLACE" FROM DUAL;
【讨论】:
我尝试了与@Don 建议的方法相同的方法,它适用于 oracle 10 xe。
select replace(' lkjds d s adkj ', ' ', '') from dual
结果
lkjdsdsadkj
【讨论】:
以下查询在 oracle 中适用于我:
select
:tst_val AS INPUT,
regexp_replace(:tst_val, '[[:space:]]*', '') AS MODIFIED
from
dual
如果此查询不适合您,您能告诉我们您得到的结果吗?
【讨论】:
regexp_replace(:P14_search_text, '[[:space:]]*', '', 1, 0) 以明确告诉它替换所有出现。默认情况下它应该这样做,但显然不是。