Oracle 11g 到目前为止我在 SQL Fiddle 上的工作
我在 varchar2 列上使用了lead()和lag()函数。使用以下规则,我想生成所需的结果。
- 如果 lag_val 为空,则 '('
- 如果 lag_val 与 set_a 相同,则 'and'
- 如果 lag_val != set_a 那么 'or'
- 如果lead_val 为空,那么')'
当我使用 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> )