HOW TO REMOVE DUPLICATE ROWS FROM A TABLE IN ORACLE (PLSQL)

We can easily remove duplicate rows from a table in Oracle.
There are a lot of ways with SQL.
I use the following method:

1
2
3
4
 DELETE FROM table_name
      WHERE ROWID NOT IN (  SELECT MIN (ROWID)
                              FROM table_name
                          GROUP BY col1, col2, col3, col4...);

Let’s make an example of a scenario.

Sample Table (Before Delete):

beforeRemoveDuplicateRows

Sample Query:

1
2
3
4
 DELETE FROM xx_employee
      WHERE ROWID NOT IN (  SELECT MIN (ROWID)
                              FROM xx_employee
                          GROUP BY employee_number, first_name, last_name, sex, job);

Sample Table (After Delete):

afterRemoveDublicateRows

İleri SQL Dersleri 3 – IN Operatörü

sql IN operatörü WHERE ve AND koşulu altında kullanılır. Amacı arama yapılırken aynı tablo kolonu için birden fazla arama koşulunu verebilmektir.
SQL LIKE Syntax

1
2
3
 SELECT column_name(s)
 FROM table_name
 WHERE column_name IN (value1,value2,...);

 

Örnek Veritabanı
Aşağıda tanınmış Northwind örnek veritabanını kullanılıyor.

Aşağıdaki “Customers” tablosuna select çekelim.

ID CustomerName ContactName Address City Code Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

IN Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtlarından Paris ve London içeren kayıtları getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City IN ('Paris','London');

Denemek İçin Tıklayınız

Benzer şekilde IN yerine NOT IN kullandığımızda arama koşulunda verdiğimiz değerlerden olmayanları getirir.

NOT IN Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtlarından Paris ve London içmeyen kayıtları getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City NOT IN ('Paris','London');

 

İleri SQL Dersleri 2 – SELECT LIKE Operatörü

sql LIKE operatörü WHERE koşulu altında kullanılır. Amacı arama yaptığımız kısmın belli ir parçası ile arama yapmaktır.

LIKE operatörü bir sütunda belirli bir desen aramak için kullanılır.
 
 
 
SQL LIKE Syntax

1
2
3
 SELECT column_name(s)
 FROM table_name
 WHERE column_name LIKE pattern;

 

Örnek Veritabanı
Aşağıda tanınmış Northwind örnek veritabanını kullanılıyor.

Aşağıdaki “Customers” tablosuna select çekelim.

ID CustomerName ContactName Address City Code Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

 
 
SELECT LIKE Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile başlayanlarını getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE 's%';

 
Denemek İçin Tıklayınız

İPUCU: “%” işareti arama yaparken koyduğumuz yerde joker karakterdir. Olmayan kısmı tanımlamak için kullanılır.

Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%s';

 
Denemek İçin Tıklayınız

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içerenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%land%';

 
Denemek İçin Tıklayınız

LIKE operatöründen önce NOT konulması uyuşan kısmı olanların gelmemesini sağlar.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içermeyenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City NOT LIKE '%land%';

 
Denemek İçin Tıklayınız

İPUCU: “_” işareti arama yaparken koyduğumuz yerde joker karakterdir. Konulduğu yerdeki bilinmeyen yada aranan karakterin yerine geçer. Birden fazla karakter için birden fazla kullanmak gerekir.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında herhangibir krakterle başlayım ‘erlin’ ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '_erlin';

 
Denemek İçin Tıklayınız