假如我有一张表A,里面内容如下
ind hh
1 a
1 b
1 c
1 d
1 e
2 f
3 g
1 h
2 i
3 j
3 k
1 l
3 m
3 n
2 p
现在我想把ind满足
1
2
3
和
1
3
这种条件的行的数据移动到另外一张表B中去,也就是说把
1 e
2 f
3 g
1 h
2 i
3 j
1 l
3 m
这样的几行移到表B中去,这个SQL语句该如何写呢?
ind hh
1 a
1 b
1 c
1 d
1 e
2 f
3 g
1 h
2 i
3 j
3 k
1 l
3 m
3 n
2 p
现在我想把ind满足
1
2
3
和
1
3
这种条件的行的数据移动到另外一张表B中去,也就是说把
1 e
2 f
3 g
1 h
2 i
3 j
1 l
3 m
这样的几行移到表B中去,这个SQL语句该如何写呢?
FROM (SELECT ind
,lead(ind, 1) over(ORDER BY rn) next_one
,lead(ind, 2) over(ORDER BY rn) next_two
,lag(ind, 1) over(ORDER BY rn) last_one
,lag(ind, 2) over(ORDER BY rn) last_two
,hh
FROM (SELECT ind, hh, rownum rn FROM a))
WHERE (ind = 1 AND (next_one = 2 AND next_two = 3 OR next_one = 3))
OR (ind = 2 AND next_one = 3 AND last_one = 1)
OR (ind = 3 AND (last_one = 2 AND last_two = 1 OR last_one = 1))