10.07.2015 Views

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!