ایس کیو ایل نیل فونکشن

SQL ISNULL()、NVL()、IFNULL() ਅਤੇ COALESCE() ਫੰਕਸ਼ਨ

ਨਿਮਨਲਿਖਤ "Products" ਤਾਲੀਕਾ ਦੇਖੋ:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36  
3 telephone 280 159 57

ਜੇਕਰ "UnitsOnOrder" ਚੋਣਯੋਗ ਹੈ ਅਤੇ NULL ਮੁੱਲ ਸਮੇਤ ਹੋ ਸਕਦਾ ਹੈ。

ਅਸੀਂ ਨਿਮਨਲਿਖਤ SELECT ਬੇਨਤੀ ਵਰਤੀਏ:

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

ਉੱਪਰੋਕਤ ਉਦਾਹਰਣ ਵਿੱਚ, ਜੇਕਰ "UnitsOnOrder" ਮੁੱਲ NULL ਹੈ ਤਾਂ ਨਤੀਜਾ NULL ਹੋਵੇਗਾ。

ਮਾਈਕਰੋਸਾਫਟ ਦਾ ISNULL() ਫੰਕਸ਼ਨ NULL ਮੁੱਲਾਂ ਦੀ ਹੱਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。

NVL(), IFNULL() ਅਤੇ COALESCE() ਫੰਕਸ਼ਨ ਵੀ ਇਸ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰ ਸਕਦੇ ਹਨ。

ਇੱਥੇ, ਅਸੀਂ NULL ਮੁੱਲ 0 ਚਾਹੁੰਦੇ ਹਾਂ。

ਇੱਥੇ, ਜੇਕਰ "UnitsOnOrder" NULL ਹੈ ਤਾਂ ਇਸ ਨੂੰ ਗਣਨਾ ਵਿੱਚ ਅਸੰਭਵ ਹੈ, ਇਸ ਲਈ ਜੇਕਰ ਕੋਈ ਮੁੱਲ NULL ਹੈ ਤਾਂ ISNULL() 0 ਵਾਪਸ ਦੇਵੇਗਾ。

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() ਫੰਕਸ਼ਨ ਰੱਖਦਾ ਹੈ।ਪਰ ਇਸ ਦਾ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ ਮਾਈਕਰੋਸਾਫਟ ਦੇ ISNULL() ਫੰਕਸ਼ਨ ਨਾਲ ਕਿਤੇ ਵੱਖਰਾ ਹੈ。

MySQL ਵਿੱਚ, ਅਸੀਂ IFNULL() ਫੰਕਸ਼ਨ ਵਰਤ ਸਕਦੇ ਹਾਂ, ਇਸ ਤਰ੍ਹਾਂ:

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

ਜਾਂ ਅਸੀਂ COALESCE() ਫੰਕਸ਼ਨ ਵਰਤ ਸਕਦੇ ਹਾਂ, ਇਸ ਤਰ੍ਹਾਂ:

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