Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich Tabellen in SQL Server mithilfe einer CASE-Anweisung korrekt?

Wie verbinde ich Tabellen in SQL Server mithilfe einer CASE-Anweisung korrekt?

Barbara Streisand
Freigeben: 2025-01-20 07:21:14
Original
516 Leute haben es durchsucht

How to Correctly Join Tables in SQL Server Using a CASE Statement?

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>
Nach dem Login kopieren

Erklärung

Die korrigierte Syntax verwendet die folgende Logik:

  • Für jede CASE-Bedingung wird ein boolescher Ausdruck ausgewertet und gibt 1 (True) zurück, wenn die Bedingung erfüllt ist, andernfalls 0 (False).
  • Verwenden Sie dann das Gleichheitszeichen (=), um das Ergebnis des CASE-Ausdrucks mit 1 zu vergleichen. Gibt 1 zurück, wenn die ausgewählte Bedingung wahr ist; andernfalls wird 0 zurückgegeben.
  • Nur ​​Zeilen, deren CASE-Ausdruck „True“ ergibt, werden in das Join-Ergebnis einbezogen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage