SQL lekérdezések az ALL, TOP, DISTINCT, DISTINCTROW predikátumokkal

  • Jul 26, 2021
click fraud protection

Az állítmány szerepel a záradék és a lekérendő mező keresztneve között, a lehetséges predikátumok a következők:

  • ÖSSZES: Visszaadja a táblázat összes mezőjét
  • TOP: Bizonyos számú rekordot ad vissza a táblázatból
  • KÜLÖNBÖZŐ: Kihagyja azokat a rekordokat, amelyeknek a kiválasztott mezői teljesen egyeznek
  • DISTINCTROW: A duplikált rekordok kihagyása a teljes rekord és nem csak a kiválasztott mezők alapján.

ÖSSZES (* helyett használható):

Hirdetések

Ha a predikátumok egyike sem szerepel, akkor feltételezzük az ALL értéket. Az adatbázis-motor kiválasztja az összes olyan rekordot, amely megfelel az SQL utasítás feltételeinek. Nem kényelmes visszaélni ezzel az állítvánnyal, mivel arra kényszerítjük az adatbázis-motort, hogy elemezze a A táblázat felépítése a benne lévő mezők megismeréséhez sokkal gyorsabb a mezők felsorolása kívánatos.

Hirdetések

MINDEN KIVÁLASZTÁSA Alkalmazottak;

SELECT * DESDE Alkalmazottak;

Hirdetések

TOP

Bizonyos számú rekordot ad vissza, amelyek egy ORDER BY záradék által megadott tartomány kezdete vagy vége közé esnek. Tegyük fel, hogy le akarjuk szerezni az 1994-es tanév első 25 hallgatójának nevét:

Hirdetések

- Válassza ki a felsőt 25 Keresztnév, Vezetéknév DESDE Diákok

- RENDEZÉS jegyzet DESC;

Hirdetések

Ha a záradék nincs benne RENDEZÉS, a lekérdezés egy tetszőleges, 25 rekordot ad vissza a Student táblából TOP nem választ egyenlő értékek között. A fenti példában, ha a 25. évfolyam és a 26. évfolyam átlaga megegyezik, a lekérdezés 26 rekordot ad vissza. Használhatja a fenntartott szót SZÁZALÉK a záradék által meghatározott tartomány elejére vagy végére eső rekordok bizonyos százalékának visszaadásához RENDEZÉS. Tegyük fel, hogy az első 25 hallgató helyett a tanfolyam 10 százalékát szeretnénk:

- Válassza ki a felsőt 10 SZÁZALÉK Név vezetéknév DESDE Diákok RENDEZÉS jegyzet DESC;

A következő érték TOP aláíratlan egész számnak kell lennie.TOP nem befolyásolja a lekérdezés lehetséges frissítését.

KÜLÖNBÖZŐ

Hagyja ki azokat az rekordokat, amelyek duplikált adatokat tartalmaznak a kijelölt mezőkben. Úgy, hogy az utasításban felsorolt ​​egyes mezők értékei SELECT a lekérdezésben szereplő egyedinek kell lennie.

Például az Alkalmazottak táblában felsorolt ​​több alkalmazottnak ugyanaz a vezetékneve lehet. Ha két rekord Lopez-t tartalmaz a Vezetéknév mezőben, akkor a következő állítást SQL egyetlen rekordot ad vissza:

- SELECT DISTINCT Vezetéknév DESDE Alkalmazottak;

Más szavakkal az állítmány KÜLÖNBÖZŐ azokat a rekordokat adja vissza, amelyeknek a mezői szerepelnek a záradékban SELECT tartalma más. A használt lekérdezés eredménye KÜLÖNBÖZŐ nem frissíthető és nem tükrözi a többi felhasználó későbbi változtatásait.

DISTINCTROW

Visszaadja a táblázat különböző rekordjait; Az előző predikátumtól eltérően, amely csak a kijelölt mezők tartalmát nézte, a teljes rekord tartalmában teszi, függetlenül a kikötés SELECT.

- SELECT DISTINCTROW Vezetéknév DESDE Alkalmazottak;

Ha az alkalmazottak táblázata két rekordot tartalmaz: Antonio López és Marta López, az állítmány példája KÜLÖNBÖZŐ egyetlen rekordot ad vissza, a Lopez értékkel a Vezetéknév mezőben, mivel nem keres másolatokat ebben a mezőben. Ez az utolsó példa két rekordot ad vissza, Lopez értékkel a vezetéknévben, mivel nem duplikátumokat keresnek a teljes rekordban.

instagram viewer