4.4.1 Select-operator: selecteren van rijen Flashcards
Geef het nummer en de naam van de medewerkers.
SELECT mnr, naam
FROM medewerkers;
In welke locaties zijn er afdelingen gevestigd?
SELECT DISTINCT locatie
FROM afdelingen;
Geef de code en de omschrijving van elke cursus.
SELECT code, omschrijving
FROM cursussen;
Geef de naam en functie van alle medewerkers die verkoper zijn.
SELECT naam, functie
FROM medewerkers
WHERE functie = ‘VERKOPER’;
Geef de naam en functie van alle medewerkers die geen boekhouders zijn.
SELECT naam, functie
FROM medewerkers
WHERE functie != ‘BOEKHOUDER’;
SELECT naam, functie
FROM medewerkers
WHERE functie <> ‘BOEKHOUDER’;
SELECT naam, functie
FROM medewerkers
WHERE NOT functie = ‘BOEKHOUDER’;
Geef alle medewerkers die meer dan €5000 verdienen en geen manager zijn.
SELECT voorn, naam
FROM medewerkers
WHERE (maandsal > 5000) AND (functie != ‘MANAGER’);
Welke medewerkers verdienen minder dan €2500?
SELECT voorn, naam, maandsal
FROM medewerkers
WHERE (maandsal < 2500);
Geef de naam van de afdeling waarvan medewerker 7698 de baas is.
SELECT naam
FROM afdelingen
WHERE hoofd = 7698;
Geef de verschillende functies van de medewerkers in de onderneming.
SELECT DISTINCT functie
FROM medewerkers;
Geef het nummer en de naam van elke medewerker die trainer is.
SELECT mnr, naam
FROM medewerkers
WHERE functie = ‘TRAINER’;
Geef de naam, de functie en het salaris van elke medewerker die in
afdeling 30 werkt en meer dan €2500 verdient.
SELECT naam, functie, maandsal AS salaris
FROM medewerkers
WHERE afd = 30 AND maandsal > 2500;
Geef de locatie van de afdeling die door medewerker 7566 geleid wordt.
SELECT locatie
FROM afdelingen
WHERE hoofd = 7566;
Geef de namen van de medewerkers die in afdeling 10 of 20 werken.
SELECT naam
FROM medewerkers
WHERE afd IN (10, 20);
SELECT naam
FROM medewerkers
WHERE afd = 10 OR afd = 20;
Geef van elke medewerker de naam en jaarsalaris (incl. commissie).
SELECT naam, (maandsal*12 + NVL(comm, 0)) AS jaarsalaris
FROM medewerkers;
Geef de namen van de medewerkers wiens naam eindigt op ‘N’.
SELECT naam
FROM medewerkers
WHERE naam LIKE ‘%N’;
Geef de namen van alle medewerkers waarin een dubbele ‘o’ voorkomt.
SELECT naam
FROM medewerkers
WHERE naam LIKE ‘%OO%’;
Alle medewerkers krijgen een opslag van 10%.
Geef een lijst waarop de naam van de medewerkers staat,
zijn huidig salaris en zijn toekomstig salaris.
Zorg voor verzorgde attribuut koppen in een realistisch formaat!
SELECT naam AS “Naam”, maandsal AS “Huidig salaris”, (maandsal*1.1) AS “Toekomstig salaris”
FROM medewerkers;
Geef de namen en het salaris van de medewerkers van groot naar
klein gesorteerd op salaris.
SELECT naam, maandsal
FROM medewerkers
ORDER BY maandsal DESC;
Geef de namen en het salaris van alle medewerkers die tussen
de €2000 en €4000 verdienen, maar niet gelijk is aan €3850, noch aan €2600.
Druk het resultaat volgens dalend salaris af.
Kortste manier:
select naam, maandsal
from medewerkers
where maandsal between 2000 and 4000
and maandsal not in (2600, 3850)
order by maandsal desc;
select naam, maandsal
from medewerkers
where maandsal between 2000 and 4000
and maandsal != 3850 and maandsal != 2600
order by maandsal desc;
select naam, maandsal
from medewerkers
where maandsal >= 2000 and maandsal <= 4000
and maandsal != 3850 and maandsal != 2600
order by maandsal desc;
Geef de namen en het salaris van de medewerkers,
gesorteerd op functie en binnen de functie op naam.
SELECT naam, functie, maandsal
FROM medewerkers
ORDER BY functie, naam;
Bepaal het jaarlijks inkomen van elke medewerker.
Los de null-problematiek op dmv de CASE-expressie.
select naam, maandsal * 12 +
(case
when comm is NULL then 0
else comm
end) as jaarsalaris
from medewerkers;
select naam, maandsal * 12 + nvl(comm, 0) as jaarsalaris
from medewerkers;