web-dev-qa-db-fra.com

Fonction IsNull dans DB2 SQL?

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
16
Dave

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.

35
MadMurf

Je ne connais pas DB2, mais avez-vous essayé COALESCE?

c'est à dire:


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

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;

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

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. 

0
venkatram

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
       )
0
turnmoil

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.

0
Fuangwith S.