Kom godt i gang med SQL

Vælg række

Hvis du vil vælge specifikke rækker i en tabel, skal du efter SELECT-sætningen med et WHERE-udtryk angive ét eller flere kriterier, som de valgte rækker skal opfylde. Et kriterium til udvælgelse af rækker fra en tabel er et søgekriterium.

Et søgekriterium består af ét eller flere prædikater. Et prædikat angiver en betingelse, som er sand eller falsk (eller ukendt) for en række. Du kan angive betingelser i WHERE-udtrykket vha. følgende grundlæggende prædikater:
Prædikat Funktion
x = y x er lig med y
x <> y x er forskellig fra y
x < y x er mindre end y
x > y x er større end y
x <= y x er mindre end eller lig med y
x >= y x er større end eller lig med y
IS NULL/IS NOT NULL der testes for NULL-værdier

Når du opretter søgekriterier, skal du sørge for kun at foretage beregninger for numeriske data og kun at sammenligne data, der er kompatible. Således kan tekststrenge og tal ikke sammenlignes.

Hvis du udvælger rækker på grundlag af en tegnværdi, skal værdien stå i enkelte anførselstegn, f.eks. WHERE JOB = 'Clerk', og alle tegnværdier skal indtastes nøjagtig som i databasen. Hvis dataværdien er skrevet med små bogstaver i databasen, og du bruger store bogstaver, vælges ingen rækker. Hvis du udvælger rækker på grundlag af en numerisk værdi, må værdien ikke stå i anførselstegn, f.eks. WHERE DEPT = 20.

I følgende eksempel udvælges kun de rækker, hvor afdelingsnummeret er 20, fra tabellen STAFF:

     SELECT DEPT, NAME, JOB
        FROM STAFF
        WHERE DEPT = 20

Resultatet er:

      DEPT   NAME      JOB
      ------ --------- -----
          20 Sanders   Mgr
          20 Pernal    Sales
          20 James     Clerk
          20 Sneider   Clerk

I det næste eksempel bruges AND til at angive mere end ét kriterium. Du kan angive så mange kriterier, du vil. I eksemplet udvælges de medarbejdere i afdeling 20, som har stillingsbetegnelsen "clerk", fra tabellen STAFF:

     SELECT DEPT, NAME, JOB
        FROM STAFF
        WHERE JOB = 'Clerk'
        AND DEPT = 20

Resultatet er:

     DEPT   NAME      JOB
     ------ --------- -----
         20 James     Clerk
         20 Sneider   Clerk
 

En NULL-værdi optræder, når der ikke angives nogen værdi, og kolonnen ikke har en standardværdi. En værdi kan også eksplicit angives til at være NULL. Værdien kan kun optræde, hvis kolonnen er defineret til at kunne indeholde NULL-værdier. Brugen af NULL-værdier beskrives under Opret tabel.

Brug prædikatet IS NULL eller IS NOT NULL, hvis du vil teste for NULL-værdier.

Med følgende sætning får du vist de medarbejdere, hvis provision er ukendt:

     SELECT ID, NAME
        FROM STAFF
        WHERE COMM IS NULL

Resultatet er:

     ID     NAME
     ------ ---------
         10 Sanders
         30 Marenghi
         50 Hanes
        100 Plotz
        140 Fraye
        160 Molinare
        210 Lu
        240 Daniels
        260 Jones
        270 Lea
        290 Quill
 

Værdien nul er ikke det samme som NULL-værdien. Med følgende sætning får du vist alle i tabellen, hvis provision er nul:

     SELECT ID, NAME
        FROM STAFF
        WHERE COMM = 0
     

Da der ikke er nogen nuller i kolonnen COMM i eksempeltabellen, returneres en tom resultatrække.

I det næste eksempel udvælges alle rækker, hvor værdien for YEARS i tabellen STAFF er højere end 9:

     SELECT NAME, SALARY, YEARS
        FROM STAFF
        WHERE YEARS > 9
     

Resultatet er:

     NAME      SALARY    YEARS
     --------- --------- ------
     Hanes      20659.80     10
     Lu         20010.00     10
     Jones      21234.00     12
     Quill      19818.00     10
     Graham     21000.00     13


[ Øverst på siden | Forrige side | Næste side | Indholdsfortegnelse | Stikordsregister ]