如何选择与同一表和列中的其他行相似的行



我试图找到包含"&"字符和就像带有"&"字符,但不包含"&;&&;"之后的任何字符。以下例子中的字符。这两行将从items表中的同一项列中选择。我希望这两行都有"&"以及没有"&"返回。如果没有"& &&"的项的行,我仍然希望该行返回为空白或null。

我下面的代码目前选择带有"&"并选择"&"字符,但我需要帮助弄清楚如何找到没有"&""&"之后的一个或多个字符基于当前选择的数据。

<表类> 项目 tbody><<tr>abc& 123年def& 456xyz& 789123456123457

你可以这样做:

with items as 
(
select 'abc'||chr(38)||'123' as item from dual union all
select 'def'||chr(38)||'456' as item from dual union all
select 'xyz'||chr(38)||'789' as item from dual union all
select '123456'              as item from dual union all
select '123457'              as item from dual
)
select item, decode(regexp_substr(item, '[^&]+', 1, 1),item,' ',regexp_substr(item, '[^&]+', 1, 1)) as Trimmed_Item
from items
ITEM    TRIMMED_ITEM
------- -------------
abc&123 abc    
def&456 def    
xyz&789 xyz    
123456         
123457   

谢谢

相关内容

最新更新