Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool
Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool
Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
TTÜ: Relatsioonialgebra. Sissejuhatus SQL keelde (2012) © Erki EessaarNULLide asendamisega seotudfunktsioonidCOALESCE(, ... , )Tagastab argumentide hulgastvasakult lugedes esimese, mis eiole NULL.Nz(variant[, valueifnull])Juhul, kui on täidetud tingimusvariant IS NULL, siis on tulemuseksvalueifnull poolt määratud väärtus.Leia iga töötaja palga ja lisatasusumma. Kui töötajal pole palk võilisatasu määratud, siis arvesta naguoleks palk või lisatasu 0.SELECT tootaja_<strong>nr</strong>,(COALESCE(palk, 0.00) +COALESCE(lisatasu, 0.00))FROM Tootaja;SELECT tootaja_<strong>nr</strong>, (Nz(palk, 0.00) +Nz(lisatasu, 0.00))FROM Tootaja;Töötajal võib palk või lisatasu ollamääramata ja liitmisoperatsioonitulemus oleks NULL. Seda saabvältida COALESCE funktsiooni abil.COALESCE(v1, v2) on samaväärnekui:CASE WHEN v1 IS NOT NULLTHEN v1ELSE v2 ENDNULLIF(v1, v2)Juhul, kui v1=v2, siis võrdlusetulemuseks on NULL, vastasel juhulv1.SELECT palk/(NULLIF (lisatasu,0) )FROM Tootaja;salary / NULL => NULLsalary / 0 => vigaSee päring vältis nulliga jagamistNULLIF(v1,v2) on samaväärne kui:CASE WHEN v1=v2 THEN NULLELSE v1 END;73