SQL: Zoeken in deel van een veld

Het stukje SQL dat ik in deze post wil behandelen, omvat de statements “like” en “substring”. Met beide statements is het mogelijk te zoeken op een deel van een waarde in een veld.

Stel we hebben te maken met de volgende tabel, die de naam country draagt. Zoals je ziet bevat deze een kolom “IndepYear”. Deze kolom bevat een jaartal wanneer een land onafhankelijkheid verkreeg.

Wanneer ik nu zou willen weten welke landen in de tabel in de 20ste eeuw onafhankelijk werden, dan moet ik dus kunnen zoeken op een deel van de waarde in deze kolom. De eerste 2 posities bevatten namelijk de eeuwaanduiding. We kunnen een dergelijke zoekopdracht uitvoeren met het SQL statement “like”.

Zoals je in de where clause ziet geven we in het like statement aan dat de eerste 2 posities van het veld de waarde ’19’ moeten hebben. Door daarachter het procentteken te zetten, geven we aan dat alle waarden die achter de 19 volgen willekeurig mogen zijn.

Het gebruik van het like statement is in dit geval echter niet de beste optie. Het like statement zou idialiter gebruikt moeten worden bij het zoeken naar een waarde wanneer je niet precies weet waar deze zich in het veld bevindt.

In deze situatie weten we dat echter wel. Immers de eeuwaanduiding staat altijd op de eerste twee posities in het veld. Beter zouden we in dit geval dan ook het substring statement gebruiken. Daarmee kunnen we precies aangeven op wele posities in het veld naar de opgegeven waarde gezocht moet worden.

Zoals je ziet geven we in de where clause aan dat gezocht moet worden in de kolom IndepYear naar de waarde 19. Met behulp van het substring statement wordt enkel naar deze waarde gezocht in een tekenreeks op twee opvolgende posities, vanaf positie ‘1’.

Geef als eerste een reactie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd.


*