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
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.
Non ho familiarità con DB2, ma hai provato COALESCE?
vale a dire:
SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
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;
Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product
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.
spero che questo possa aiutare qualcun altro là fuori
SELECT
.... FROM XXX XX
WHERE
....
AND(
param1 IS NULL
OR XX.param1 = param1
)
COALESCE
function same ISNULL
function Nota. devi usare la funzione COALESCE
con lo stesso tipo di dati della colonna che controlli è nullo.