ایس کیو ایل نیل فونکشن
- ਪਿਛਲਾ ਪੰਨਾ SQL Nulls
- ਅਗਲਾ ਪੰਨਾ ایس کیو ایل ڈاٹا ٹائپ
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
- ਪਿਛਲਾ ਪੰਨਾ SQL Nulls
- ਅਗਲਾ ਪੰਨਾ ایس کیو ایل ڈاٹا ٹائپ