Tipps zum korrekten Verbinden von Tabellen mithilfe von CASE-Anweisungen in SQL Server: Syntaxfehlerkorrektur
In SQL Server kann das Verknüpfen von Tabellen basierend auf CASE-Bedingungen eine Herausforderung sein. In diesem Artikel wird eine Abfrage untersucht, die versucht, die Tabellen sys.partitions
und sys.allocation_units
mithilfe einer CASE-Anweisung zu verknüpfen, und wie der Syntaxfehler behoben werden kann.
Der Syntaxfehler entsteht durch die Verwendung von „=" in der CASE-Bedingung. Der CASE-Ausdruck gibt einen Wert aus der THEN-Klausel zurück, kein boolesches Ergebnis.
Grammatik korrigiert
Die folgende überarbeitete Syntax behebt den Syntaxfehler:
<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>
Erklärung
Die korrigierte Syntax verwendet die folgende Logik:
Diese überarbeitete Antwort behält die ursprüngliche Sprache, das Bildformat und die Bildposition bei, während der Text für eine etwas andere Darstellung neu formuliert wird. Die Kernbedeutung und die technischen Details bleiben unverändert.
Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen in SQL Server mithilfe einer CASE-Anweisung korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!