92 votes

SQL Coalesce avec une chaîne vide

J'ai les éléments suivants :

Select Coalesce(Other,Industry) Ind from registration

Le fait est que Other peut être une chaîne vide ou NULL . Comment puis-je obtenir coalesce de fonctionner de telle sorte que si Other est une chaîne vide, Coalesce revient toujours Industry ?

199voto

Lamak Points 33901

Utilisez un CASE l'expression ou NULLIF :

SELECT COALESCE(NULLIF(Other,''),Industry) Ind FROM registration

30voto

rs. Points 11670

Essayez ceci

Select Coalesce(nullif(Other,''),Industry) Ind from registration

4voto

MatBailie Points 37610

Vous pouvez également utiliser un raccourci sachant que NULL <> '' n'est pas évalué à TRUE ...

CASE WHEN other <> '' THEN other ELSE industry END

La logique est alors la suivante...

  • CASE WHEN 'fubar' <> '' THEN other ELSE industry END
    \=> CASE WHEN true THEN other ELSE industry END
    \=> other

  • CASE WHEN '' <> '' THEN other ELSE industry END
    \=> CASE WHEN false THEN other ELSE industry END
    \=> industry

  • CASE WHEN NULL <> '' THEN other ELSE industry END
    \=> CASE WHEN NULL THEN other ELSE industry END
    \=> industry

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X