it-swarm.it

Funzionalità Null in DB2 SQL?

Esiste un performante equivalente alla funzione isnull per DB2?

Immagina che alcuni dei nostri prodotti siano interni, quindi non hanno nomi:

Select product.id, isnull(product.name, "Internal) 
From product

Potrebbe tornare:

1 Socks 
2 Shoes 
3 Internal 
4 Pants
16
Dave

Per quello che vale, COALESCE è simile ma 

IFNULL(expr1, default)

è la corrispondenza esatta che stai cercando in DB2. 

COALESCE consente più argomenti, restituendo la prima espressione NON NULL, mentre IFNULL consente solo l'espressione e il valore predefinito.

Così

SELECT product.ID, IFNULL(product.Name, "Internal") AS ProductName
FROM Product

Ti dà quello che stai cercando e le risposte precedenti, aggiungendo solo per completezza.

35
MadMurf

Non ho familiarità con DB2, ma hai provato COALESCE?

vale a dire:


SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
3
Chris Shaffer

In DB2 esiste una funzione NVL (campo, valore se null).

Esempio:

SELECT ID, NVL (NAME, "Internal) AS NAME, NVL (PREZZO, 0) COME PREZZO DAL PRODOTTO CON UR;

2
Md. Kamruzzaman
Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product
2
Jnn

Penso che la funzione COALESCE sia parzialmente simile alla isnull, ma provalo.

Perché non usi le funzioni di gestione nulla tramite i programmi applicativi, è un'alternativa migliore. 

0
venkatram

spero che questo possa aiutare qualcun altro là fuori

  SELECT 
.... FROM XXX XX
WHERE
....
AND(
       param1 IS NULL
       OR XX.param1 = param1
       )
0
turnmoil

COALESCE function same ISNULL function Nota. devi usare la funzione COALESCE con lo stesso tipo di dati della colonna che controlli è nullo.

0
Fuangwith S.