select
A1,A2, b1,b2
from
(select '01' as A1, 'a' as A2, '1' as A3, 'x' as a4, '12' as A5 from dual UNION all
select '01' as A1, 'a' as A2, '2' as A3, 'z' as a4, '23' as A5 from dual UNION all
select '01' as A1, 'b' as A2, '1' as A3, 'x' as a4, '34' as A5 from dual UNION all
select '01' as A1, 'b' as A2, '2' as A3, 'z' as a4, '45' as A5 from dual UNION all
select '02' as A1, 'c' as A2, '1' as A3, 'x' as a4, '56' as A5 from dual UNION all
select '02' as A1, 'c' as A2, '2' as A3, 'z' as a4, '67' as A5 from dual UNION all
select '02' as A1, 'd' as A2, '1' as A3, 'x' as a4, '78' as A5 from dual UNION all
select '02' as A1, 'd' as A2, '2' as A3, 'z' as a4, '89' as A5 from dual
) t
model
RETURN UPDATED ROWS --只返回被更新的行
partition by(A1,A2) --按照A1,A2分组
dimension by(A3,A4) --以A3,A4为标尺
measures(
A5 as b1, --初始化新列b1,为了保证b1的长度,以A5进行初始化
A5 as b2, --初始化新列b2
A5 as b5
)
rules(
b1[null,null]=b5['1','x'], --[null,null]表示不更新任何行,而追加一行,用所给A3,A4值查找对应的A5的值
b2[null,null]=b5['2','z']
);
select
A1,A2, b1,b2
from
(select '01' as A1, 'a' a