SQL NULL ფუნქციები

«წინა შემდეგი თავი »

SQL ISNULL (), NVL (), IFNULL () და COALESCE () ფუნქციები

ქვემოთ მოყვანილია "პროდუქტები" ცხრილში:

P_Id PRODUCTNAME UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10,45 16 15
2 Mascarpone 32,56 23  
3 Gorgonzola 15,67 9 20

ვარაუდობენ, რომ "UnitsOnOrder" სვეტის არასავალდებულოა და შეიძლება შეიცავდეს NULL მნიშვნელობას.

ჩვენ გვაქვს შემდეგი SELECT განაცხადი:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

წელს ზემოთ მოყვანილი მაგალითი, თუ "UnitsOnOrder" ღირებულებები NULL, შედეგად NULL.

Microsoft-ის ISNULL () ფუნქცია გამოიყენება მიუთითოთ როგორ გსურთ მკურნალობა NULL მნიშვნელობას.

NVL (), IFNULL (), და COALESCE () ფუნქცია ასევე შეიძლება გამოყენებული იქნას, რათა მიაღწიოს იგივე შედეგი.

ამ შემთხვევაში ჩვენ გვინდა NULL მნიშვნელობას უნდა იყოს ნულოვანი.

ქვემოთ, თუ "UnitsOnOrder" არის NULL ეს არ დააზიანოთ გამოთვლის, რადგან ISNULL () დააბრუნებს ნულოვანი თუ მნიშვნელობა NULL:

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

Oracle-ს ჯერ არ შეუყვანია ISNULL () ფუნქციით. თუმცა, ჩვენ შეგვიძლია გამოვიყენოთ NVL () ფუნქციას, რათა მიაღწიოს იგივე შედეგი:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

MySQL ს ჯერ არ ISNULL () ფუნქციით. თუმცა, ეს სამუშაოები ცოტა განსხვავებული Microsoft-ის ISNULL () ფუნქციით.

MySQL-ში ჩვენ შეგვიძლია გამოვიყენოთ IFNULL () ფუნქცია შემდეგნაირად:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

ან შეგვიძლია გამოვიყენოთ COALESCE () ფუნქცია შემდეგნაირად:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

«წინა შემდეგი თავი »

Hosted by uCoz