Acest tutorial SQL se concentrează pe cuvântul cheie SQL DISTINCT în Oracle și oferă explicații, exemple și exerciții. Pentru exercițiile din această lecție, utilizați acest link.
Acest tutorial face parte din mai multe postări care explică cum să scrie interogări de bază în Oracle. Pentru a citi postări suplimentare referitoare la acest subiect, vă rugăm să utilizați următoarele link-uri:
- Scrierea instrucțiunilor SQL SELECT de bază
- Operatori aritmetici SQL
- Asociații de coloane SQL
- Concatenarea șirurilor SQL
- SQL Cuvântul cheie DISTINCT
Cuvântul cheie Oracle DISTINCT
Afișarea implicită a interogărilor Oracle este de toate rândurile, inclusiv a celor duplicate. Cuvântul cheie Oracle DISTINCT din clauza SELECT este utilizat pentru a elimina rândurile duplicate și pentru a afișa o listă unică de valori.
De exemplu: să presupunem că avem un tabel Customers, care conține o listă de clienți din diferite orașe: 40 de clienți din Londra, 30 din Liverpool și 30 din Manchester. Vi s-a cerut să afișați lista orașelor în care locuiesc acești clienți:
SELECT cityFROM customers
Această instrucțiune Oracle nu este foarte utilă, deoarece recuperează 100 de rânduri (Londra revine de 40 de ori, Liverpool revine de 30 de ori și Manchester revine de 30 de ori), în timp ce intenția noastră era să afișăm doar 3 rânduri.
Pentru a rezolva această problemă și a prelua numai valori unice, utilizați cuvântul cheie Oracle DISTINCT:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
Rezultatul:
CITY------LondonLiverpoolManchester
Nota : Cuvântul cheie Oracle DISTINCT trebuie inclus imediat după cuvântul cheie Oracle SELECT.
Declarația Oracle DISTINCT pe mai multe coloane
După cuvântul cheie Oracle DISTINCT, este posibil să se specifice mai multe coloane. Calificativul Oracle DISTINCT afectează toate coloanele selectate, astfel, rezultatul va afișa combinația unică de valori din diferitele coloane. De exemplu, o listă de clienți din orașe și țări diferite:
Customer Name | City | Country | |
John Smith | Liverpool | Anglia | |
Sophia Williams | Londra | Anglia | |
Emma Miller | Liverpool | Anglia | |
Olivia Wilson | Paris | Franța | |
Logan Davis | Paris | Franța |
Vezi că sunt doi clienți din Liverpool…Anglia, doi clienți din Paris-Franța și un alt client din Londra-Anglia.
Executarea instrucțiunii Oracle DISTINCT pe coloana Country are ca rezultat obținerea a 2 rânduri (Anglia,Paris).
SELECT DISTINCT countryFROM customers
Executarea instrucțiunii Oracle DISTINCT pe coloana City are ca rezultat obținerea a 3 rânduri (Liverpool, Londra, Paris).
SELECT DISTINCT city FROM customers
Dacă executați instrucțiunea Oracle DISTINCT pe ambele coloane City și Country:
SELECT DISTINCT city , countryFROM customers
Se recuperează 3 rezultate – Liverpool Anglia, Londra Anglia, Paris Franța.
.