甲骨文11g 到目前为止我在SQL Fiddle上的工作
我在列上使用了和函数。使用以下规则,我希望生成所需的结果。
当我使用nvl()转换空值以便进行比较时,我会得到“无效数字”。
期望输出
SEQNO SET_A LAG_VAL LEAD_VAL MENU_ENTRY
------------------------------------------
1 CAKE <null> CAKE (
2 CAKE CAKE BEER AND
3 BEER CAKE BRATS OR
4 BRATS BEER <null> )发布于 2013-03-26 18:08:53
您的问题是,您在字符串上使用的是"-“运算符,而不是带铅/滞后的运算符。我想你想要这个:
select seqno,
set_a,
lag_val,
lead_val
, case
when (lag_val ) is null then '('
when (lead_val ) is null then ')'
when (lag_val = set_a) then 'and'
else 'or'
end as menu_entry
from ( select seqno,
set_a,
lag(set_a,1) over (order by seqno) as lag_val,
-- lag(to_number,'XX') over (order by seqno) as lag_val,
lead(set_a,1) over (order by seqno) as lead_val
from menu_items)
order by seqnohttps://stackoverflow.com/questions/15643770
复制相似问题