Conseils pour connecter correctement les tables à l'aide des instructions CASE dans SQL Server : correction d'erreur de syntaxe
Dans SQL Server, joindre des tables en fonction des conditions CASE peut être difficile. Cet article explore une requête qui tente de joindre les tables sys.partitions
et sys.allocation_units
à l'aide d'une instruction CASE, et comment résoudre son erreur de syntaxe.
L'erreur de syntaxe provient de l'utilisation de "=" dans la condition CASE. L'expression CASE renvoie une valeur de la clause THEN, pas un résultat booléen.
Grammaire corrigée
La syntaxe révisée suivante résout l'erreur de syntaxe :
<code class="language-sql">SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) AND a.container_id = p.hobt_id THEN 1 WHEN a.type IN (2) AND a.container_id = p.partition_id THEN 1 ELSE 0 END = 1</code>
Explication
La syntaxe corrigée utilise la logique suivante :
Cette réponse révisée conserve la langue, le format et la position de l'image d'origine tout en reformulant le texte pour une présentation légèrement différente. La signification principale et les détails techniques restent inchangés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!