VyÜlo: 18.12.2000 Rubrika:
ASP - SQL
SQL: Zapome≥te na duplictnφ °ßdky ve v²pisech - DISTINCT
P°i pou₧φvßnφ SQL jazyka a p°φkazu SELECT je n∞kdy nutnΘ vypsat vÜechny unikßtnφ °ßdky prßv∞ jednou. Metod je na to hodn∞, ale ta dneÜnφ Vßm zajistφ jednoduchΘ, elegantnφ a rychlΘ °eÜnφ, kterΘ se Vßm bude jist∞ hodit. Vφce v Φlßnku...
Metodou testovßnφ ka₧d² s ka₧d²m by to bylo asi opravdu velice nßroΦnΘ jak pro server, kde jsou strßnky umφt∞ny, tak pro programßtora, kter² by musel vymyslet dostateÜn∞ chytr² algoritmus, kter² by tuto funci zajistil.
NaÜt∞stφ lze tΘto nezß₧ivnΘ prßci jednoduÜe p°edejφt.
Nßvrhß°i a poslΘze programßto°i zabudovali do SQL p°φkaz SELECT a modifikßtor DISTINCT, kter² zajistφ vypsßnφ pouze unikßtnφch °ßdk∙ v tabulce. KonkrΘtn∞ se jednß pouze o unikßtnφ sloupky kterΘ vypisujeme.
Bohu₧el ka₧dΘ zlato mß i Φernou k∙rku, ani DISTINCT nenφ vyjφmkou. P°i pou₧itφ tohoto p°φkazu je nutnΘ si dßt pozor kde a na jak rozßhlΘ databßzi se bude SQL p°φkaz provßd∞t.
DISTINCT p°i svΘm pou₧itφ porovnßvß nalezen² °ßdek se vÜemi ji₧ nalezen²mi, co₧ m∙₧e b²t ve velk²ch tabulkßch kamenem ·razu.
P°φklad:
Mßme nßsledujφcφ tabulku:
Jmeno |
Prijmeni |
Vek |
Jan |
Novak |
48 |
Jiri |
Novak |
48 |
Jan |
Novak |
54 |
Jan |
Novak |
48 |
Tato tabulka na prvnφ pohled obsahuje dva shodnΘ zßznamy.
Obsah tabulky lze vypsat nßsledovn∞:
SELECT Jmeno, Prijmeni, Vek From Tabulka
V²sledek:
Jmeno |
Prijmeni |
Vek |
Jan |
Novak |
48 |
Jiri |
Novak |
48 |
Jan |
Novak |
54 |
Jan |
Novak |
48 |
Jestli₧e si nep°ejeme duplictnφ polo₧ky, vyu₧ijeme p°φkazu DISTINCT a v²sledek bude vypadat nßsledovn∞:
SELECT DISTINCT Jmeno, Prijmeni, Vek From Tabulka
Dostaneme nßsledujφcφ data v tabulce:
Jmeno |
Prijmeni |
Vek |
Jan |
Novak |
48 |
Jiri |
Novak |
48 |
Jan |
Novak |
54 |
Obdobn²m modifikßtor k k DISTINCT je DISTINCTROW, kter² vybere pouze unikßtnφ °ßdky bez ohledu na vybφranΘ sloupce.
Na problematiku DISTINCTROW se podφvßme za pßr dnφ v novΘm Φlßnku.
Zden∞k Cendra
ceskywap@ceskywap.cz
Souvisejφcφ Φlßnky
|