Comment utiliser le sql cas expressions nullif et fusionner

La seule chose que vous pouvez être sûr de ce monde est le changement. Heureusement, SQL comptes pour cela. Thermodynamique classique et la théorie moderne du chaos deux indiquent que les systèmes migrent naturellement, un état ordonné bien connu dans un état désordonné que personne ne peut prédire. Quiconque a déjà surveillé l'état de la chambre d'un adolescent pour une période d'une semaine après la chambre est nettoyée peut se porter garant pour ces théories.

Tables de base de données ont des valeurs définies dans les champs contenant des teneurs connues. Habituellement, si la valeur d'un champ est inconnu, le champ contient la valeur nulle. Dans SQL, vous pouvez utiliser un AFFAIRE expression pour modifier le contenu d'un champ de table à partir d'une valeur certaine à une valeur nulle. La valeur null indique que vous ne savez plus la valeur du terrain. Prenons l'exemple suivant.

Imaginez que vous êtes propriétaire d'une petite compagnie aérienne qui offre des vols entre le sud de la Californie et l'État de Washington. Jusqu'à récemment, certains de vos vols arrêté à l'aéroport international de San Jose pour faire le plein avant de continuer. Malheureusement, vous venez de perdre votre droit de voler dans San Jose. A partir de maintenant, vous devez faire votre ravitaillement cesser soit l'aéroport international de San Francisco ou de l'aéroport international de Oakland.

À ce stade, vous ne savez pas quels vols arrêter à laquelle l'aéroport, mais vous ne savez qu'aucun des vols sont une halte à San Jose. Vous avez une base de données de vol qui contient des informations importantes sur vos itinéraires, et maintenant vous voulez mettre à jour la base de données pour supprimer toutes les références à San Jose. L'exemple suivant montre une façon de le faire:

UPDATE FLIGHTSET RefuelStop = CASEWHEN RefuelStop = 'San Jose'THEN NULLELSE RefuelStopEND -

Parce que des occasions comme celle-ci - dans lequel vous souhaitez remplacer une valeur connue avec une valeur nulle - surviennent fréquemment, SQL propose une notation abrégée pour accomplir cette tâche. L'exemple précédent, exprimé sous cette forme abrégée, ressemble à ceci:

UPDATE FLIGHTSET RefuelStop = NULLIF (RefuelStop, 'San Jose') -



Vous pouvez traduire cette expression à l'anglais comme, “ Mettre à jour la table de VOL en réglant le RefuelStop colonne à NULL si la valeur existante de RefuelStop est 'San Jose ». Sinon, faites aucun changement ”.

NULLIF est encore plus pratique si vous convertir des données que vous avez initialement accumulé pour une utilisation avec un programme écrit dans un langage de programmation standard tel que C ++ ou Java. Langages de programmation standards ne sont pas les valeurs NULL, donc une pratique courante consiste à utiliser des valeurs spéciales pour représenter le concept de “ pas connu ” ou “ pas applicable ” ;.

Un numérique -1 peut représenter une valeur non connue pour SALAIRE, par exemple, et une chaîne de caractères “ *** ” peut représenter une valeur non connue ou non-applicable pour JobCode. Si vous voulez représenter ces Etats non-connus et non-applicables dans une base de données compatible SQL en utilisant les valeurs NULL, vous devez convertir les valeurs spéciales à NULL. L'exemple suivant permet cette conversion pour une table d'employés, dans laquelle certaines valeurs de salaire sont inconnus:

UPDATE EMPSET Salaire = CASE SalaryWHEN -1 ALORS NULLELSE SalaryEND -

Vous pouvez effectuer cette conversion plus commodément en utilisant NULLIF, comme suit:

UPDATE EMPSET Salaire = NULLIF (Salaire, -1) -

COALESCE, aimer NULLIF, est une forme abrégée d'un particulier AFFAIRE expression. COALESCE traite d'une liste de valeurs qui peuvent ou peuvent ne pas être nulle. Voici comment cela fonctionne:

  • Si l'une des valeurs de la liste est non nulle: La COALESCE expression prend sur cette valeur.

  • Si plus d'une valeur dans la liste est non nulle: L'expression prend la valeur du premier élément non-nulle dans la liste.

  • Si toutes les valeurs de la liste sont nulles: L'expression prend la valeur nulle.

UN AFFAIRE expression avec cette fonction a la forme suivante:

CASEWHEN valeur1 EST PAS NULLTHEN value1WHEN valeur2 EST PAS valeur2 NULLTHEN ... lorsque la valeurn EST PAS NULLTHEN valeurnNULLEND AUTRE

Le correspondant COALESCE raccourci ressemble à ceci:

COALESCE (valeur1, valeur2, ..., la valeurn)

Vous pouvez utiliser un COALESCE expression après avoir effectué une OUTER JOIN opération. Dans ces cas, COALESCE peut vous faire économiser beaucoup de dactylographie.


» » » » Comment utiliser le sql cas expressions nullif et fusionner