De Functie ISNULL() SQL
In SQL Server Management Studio kun je met de Functie ISNULL() een NULL waarde vervangen door een andere waarde. De ISNULL() functie heeft twee parameters nodig:
ISNULL(kolomnaam, vervangwaarde).
De kolomnaam is de naam van de kolom die je wilt controleren op NULL waardes. De vervangwaarde is de waarde waardoor de NULL waarde vervangen moet worden. Als de entry geen NULL waarde heeft dan wordt de bestaande waarde overgenomen. We gebruiken onderstaande tabel.
In deze tabel zien we in de kolom Telefoonnummer een aantal NULL waardes. We willen deze NULL waarde vervangen door een andere waarde, bijvoorbeeld door de string ‘No Value‘. We gebruiken hiervoor de ISNULL() functie in onderstaande query.
[sql]
SELECT *,
ISNULL(Telefoonnummer, ‘No’+ ‘ ‘ + ‘Value’) AS NullTelefoon
FROM TestTabel
[/sql]
Onderstaand zie je het resultaat. Er is een nieuwe kolom met de naam NullTelefoon gemaakt waarin de NULL waardes vervangen zijn door ‘No Value’. Als de datatypes tussen de entries uit de kolomnaam en de vervangwaarde verschillend zijn, dan wordt het type van de vervangwaarde impliciet geconverteerd naar het type van de geselecteerde kolom. De entries die geen NULL waarde hadden, zijn overgenomen.
Verschil met IS NULL
Let op dat de functie ISNULL() niet gelijk is aan IS NULL. Je gebruikt IS NULL om NULL waardes te vinden in bijvoorbeeld de WHERE clause. Je kunt hier niet de functie ISNULL() voor gebruiken. Als we alleen de rijen willen selecteren waarbij het telefoonnummer een NULL waarde heeft dan gebruik je onderstaande SQL query. [sql] SELECT *FROM TestTabel
WHERE Telefoonnummer IS NULL
[/sql]
Dit is het resultaat.
Als we de rijen willen selecteren waarbij het telefoonnummer een NULL waarde heeft en we willen deze NULL waardes vervolgens vervangen door ‘No Value’ dan kun je onderstaande query gebruiken.
ISNULL(Telefoonnummer, ‘No’+ ‘ ‘ + ‘Value’) AS NullTelefoon
FROM TestTabel
WHERE Telefoonnummer IS NULL
[/sql]
Dit is het resultaat.
Zelf proberen
Wil je zelf experimenteren met de dataset? Gebruik dan onderstaande SQL queries. Je kunt de queries kopiëren en plakken.Tabel maken:
[sql]
CREATE TABLE TestTabel
(
ID INT NOT NULL,
Naam VARCHAR(30),
Telefoonnummer VARCHAR(20)
)
[/sql]
Tabel vullen:
[sql]
INSERT INTO TestTabel(ID, Naam, Telefoonnummer)
VALUES (1, ‘Hendrik Pieters’, ‘01972836495’),
(2, ‘Sascha Milt’, ‘83920174658’),
(3, ‘Jan Loop’, NULL),
(4, ‘Simon Aarends’, ‘19203948274’),
(5, ‘Jip Poons’, NULL)
[/sql]
Geef een reactie