所以,我有像一块简单的SQL:REGEXP_SUBSTR不能按预期工作
select
REGEXP_SUBSTR (randomcol, '[^|]+', 1, 2)
||'|'|| REGEXP_SUBSTR (randomcol, '[^|]+', 1, 3)
||'|'|| REGEXP_SUBSTR (randomcol, '[^|]+', 1, 4)
from table1 where ADDTL_DETAIL_INFO is not null and module_key='01-07-2016 00:00:00/2212/ 1';
的想法是让存在于randomcol列管分离值,其中存在的价值是:
~custom|HELLO1||HELLO3
所以我需要像HELLO1这样的值,空格(因为第二个管道和第三个管道之间没有数值)和HELLO3。
但是,当我跑上面的查询它返回:
HELLO1|HELLO3|
和白色的空间也没有了。我需要这个空白空间来保留。那么我在这里做错了什么?
你没有做错什么,Oracle是 - 通过将空字符串视为null。在遥远的未来,甲骨文将会倒闭,或者他们会解决这个问题(以先到者为准)。 – mathguy