Instruction SQL Update avec une Cas avec la sélection à l'Intérieur de

Je veux exécuter une mise à jour en masse déclaration qui sélectionne les min et max d'une colonne. Le problème est qu'il y a plusieurs colonnes avec des valeurs null. Si NULL alors, je veux MinValue à 0.

J'ai la déclaration suivante, mais j'obtiens des erreurs avec le SELECT et ELSE:

UPDATE Table1 SET MaxValue = (
        SELECT MAX(column1) FROM Table2), 
        MinValue = (CASE 
            WHEN SELECT MIN(column1) FROM Table2 <> NULL 
            THEN SELECT MIN(column1) FROM Table2 
            ELSE '0' 
        END) 

Ce qui me manque?

  • On ne peut pas comparer à la valeur NULL dans cette manière et je suis assez sûr que MIN ignore les valeurs Null à moins qu'il n'y a pas d'autres options... pas la raison de cette erreur, mais vous aurez des problèmes. Le CAS est conçu de manière à avoir le même type de données, donc en tournant 0 dans une chaîne de caractères, vous pouvez également vous faire mal.
  • Ne Table1 ont une relation avec Table2?
  • Avez-vous essayer de mettre des parenthèses autour de la sous-requêtes dans les cas comme celui-ci: WHEN (SELECT MIN(column1) FROM Table2) <> NULL
  • Merci de ne pas nous narguer en disant que vous obtenez des erreurs, mais que vous ne les partagez pas. Voulez-vous vraiment mettre à jour toutes les lignes, c'est à dire pas de clause where, avec la même MinValue et MaxValue, c'est à dire pas de corrélation de la sous-requête?