T-SQL ISNULL function

Jak już wiemy IS NULL to wartość nieokreślona i możemy "za jej pomocą" np. filtrować rekordy w zapytaniu (czytaj tutaj). Ale istnieje także funkcja ISNULL(). Funkcja ta zawiera dwa parametry ISNULL(sprawdzane_wyrażenie , wartość_do_zamiany). Funkcja ta na początku sprawdza czy w pierwszym parametr przyjmuje wartość NULL, jeśli tak to podmienia jego wartość na wartość drugiego parametru. Zobaczmy to na przykładzie.

Do tego przykłądu stworzyłem bazę "test" w której stworzyłem tabelę "table_test", a w niej trzy kolumny: kolA, kolB, kolC.
kolumna kolA – przechowuje kolory
kolumna kolB – przechowuje liczby
kolumna kolC – przechowuje liczebniki główne

Wyświetlmy teraz tabelę "table_test" zwykłym SELECT-em.

SELECT
     kolA
    ,kolB
    ,kolC
FROM
    table_test

Tabela po wyświetleniu wygląda tak:

sql t-sql commands isnull function

Zwróc uwagę, że w kolumnie "kolA" jest jedna wartość NULL i w kolumnie "kolB" jest jedna wartość NULL.
Jak zrobić, żeby zastąpić te wartości właściwymi wartościami np. w kolumnie która przechowuje kolory (kolA) wstawimy wartość 'brak koloru' a w kolumnie która przechowuje liczby (kolB) wstawimy wartość "0". Zaprogramujemy także, że jeżeli w kolumnie "kolC" znalazłaby się wartość NULL to zamienimy ją na "brak".

Do wykonania tego zadania użyjemy funkcji ISNULL i nasze zapytanie przybieże postać.

SELECT
     ISNULL(kolA , 'brak koloru') AS kolA
    ,ISNULL(kolB , 0) AS kolB
    ,ISNULL(kolC , 'brak') AS kolC
FROM
    table_test

Poniżej wynik uruchomienia zapytania.

sql t-sql commands isnull function

Jak widzimy na zrzucie wartości NULL w kolumnach "kolA" i "kolB" zostały zamienione na wskazane. W kolumnie "kolC" nie ma żadnych zmian bo nie było żadnej wartości NULL którą należało zamienić.


SQL tutorial. AdventureWorks exercises no.34. SQL SERVER.  SQL tutorial. AdventureWorks exercises no.34. SQL SERVER. SQL tutorial. AdventureWorks exercises SQL SERVER.