Existe-t-il un équivalent performant de la fonction isnull pour DB2?
Imaginez que certains de nos produits sont internes, ils n'ont donc pas de nom:
Select product.id, isnull(product.name, "Internal)
From product
Pourrait revenir:
1 Socks
2 Shoes
3 Internal
4 Pants
Pour ce que ça vaut, COALESCE est semblable mais
IFNULL(expr1, default)
est la correspondance exacte que vous recherchez dans DB2.
COALESCE autorise plusieurs arguments et renvoie la première expression NON NULL, alors que IFNULL n'autorise que l'expression et la valeur par défaut.
Ainsi
SELECT product.ID, IFNULL(product.Name, "Internal") AS ProductName
FROM Product
Vous donne ce que vous cherchez ainsi que les réponses précédentes, en ajoutant simplement pour la complétude.
Je ne connais pas DB2, mais avez-vous essayé COALESCE?
c'est à dire:
SELECT Product.ID, COALESCE(product.Name, "Internal") AS ProductName
FROM Product
Dans DB2, il existe une fonction NVL (zone, valeur si null).
Exemple:
SELECT ID, NVL (NOM, "Interne) AS NOM, NVL (PRICE, 0) AS PRIX DE PRODUIT AVEC UR;
Select Product.ID, VALUE(product.Name, "Internal") AS ProductName from Product
Je pense que COALESCE
fonctionne en partie de manière similaire à isnull
, mais essayez-le.
Pourquoi n'allez-vous pas pour des fonctions de traitement nulles via des programmes d'application, c'est une meilleure alternative.
espérons que cela pourrait aider quelqu'un d'autre là-bas
SELECT
.... FROM XXX XX
WHERE
....
AND(
param1 IS NULL
OR XX.param1 = param1
)
COALESCE
fonction identique ISNULL
fonction Remarque. vous devez utiliser la fonction COALESCE
avec le même type de données de colonne que vous cochez NULL.