我有一个表格,其中有一个字段,其中包含许多"项目编号" (从8%,2%等开始......)。这些项目编号还有其他组件,这些组件也存储在同一列中(因为每个组件也是一个项目)。现在要求的是,如果我遇到一个项目编号,其组件编号从8%开始,那么我需要针对主项目编号创建一个新列(一些称为800级项目的东西)并将其存储在那里,如果主要项目编号有2%的组件编号,那么我应该将它放入另一个类似(200级)的列中。
Field1 XLike YLike
---------------------
(Main Item) XXXX
(Main Item's component)YYYY
(Main Item's component)ZZZZ
(Main Item's component)XABC
(Main Item's component)YABC
现在,根据Field1中Sting的起始字符,我需要按以下方式隔离字段XLike和YLike中的值:
Field1 | XLike | YLike
-------------------------
XXXX | XABC |
YYYY | | YABC
ZZZZ | |
XABC | |
YABC | |
答案 0 :(得分:0)
10g你可以尝试
select
wm_concat(case when field1 like '%X%' then field1 end) XLike,
wm_concat(case when field1 like '%Y%' then field1 end) YLike
from table1
11g有listagg功能
select listagg(case when field1 like '%X%' then field1 end, ';') within group(order by field1) XLike,
listagg(case when field1 like '%Y%' then field1 end, ';') within group(order by field1) YLike
from table1