我正在尝试使用ORACLE查询解决此问题。以下是样本数据
| Col1 | Col2 |
------------------------------------
| 21-dec-15 | nochange |
| 20-dec-15 | change |
| 20-dec-15 | nochange |
| 18-dec-15 | change |
| 18-dec-15 | nochange |
此处col2是别名列,而不是表中的列。
此处要求我需要检查是否发生任何更改的特定日期,如果有更改,则将该日期的nochange
更新为change
。
由于col2是别名列,所以我不确定如何检查它。如果我们将结果存储在单独的别名列中,我也很好。
预期结果:
| Col1 | Col2 |
------------------------------------
| 21-dec-15 | nochange |
| 20-dec-15 | change |
| 20-dec-15 | change |
| 18-dec-15 | change |
| 18-dec-15 | change |
答案 0 :(得分:2)
这应该这样做:
with tempt as
(
<<Your existing query that returns col1 and col2>>
)
select t1.col1,
case when exists ( select 1 from tempt t2 where t1.col1=t2.col1 and t2.col2='change')
then 'change'
else t1.col2
end
from tempt t1;
如果需要,请按col1添加订单。