Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana saya bisa menemukan duplikat nilai berurutan dalam tabel ini?

Gunakan fungsi analitik lead dan lag.

create table t3 (d number, v number);
insert into t3(d, v) values(1, 1);
insert into t3(d, v) values(2, 2);
insert into t3(d, v) values(3, 2);
insert into t3(d, v) values(4, 3);
insert into t3(d, v) values(5, 2);
insert into t3(d, v) values(6, 3);
insert into t3(d, v) values(7, 4);

select d, v, case when v in (prev, next) then '*' end match, prev, next from (
  select
    d,
    v,
    lag(v, 1) over (order by d) prev,
    lead(v, 1) over (order by d) next
  from
    t3
)
order by
  d
;

Tetangga yang cocok ditandai dengan * di kolom kecocokan,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengganti nilai tertentu di kolom database Oracle?

  2. Mekanisme yang Diikuti oleh Oracle saat kami mengambil cadangan panas

  3. Apakah kebuntuan mungkin terjadi saat memperbarui dan menghapus baris yang berbeda dalam sebuah tabel?

  4. Cara Membuat Variabel Record Datatype yang ditentukan Pengguna Di Oracle Database

  5. Oracle - Mengapa saya harus menggunakan paket daripada prosedur atau fungsi yang berdiri sendiri?