CASE-Anweisung in SQL WHERE-Klausel
In SQL stellt die CASE-Anweisung einen bedingten Auswertungsmechanismus bereit. Es ermöglicht Ihnen, verschiedene Bedingungen anzugeben und basierend auf diesen Bedingungen entsprechende numerische Werte zurückzugeben. Dies ist besonders nützlich in WHERE-Klauseln, um Daten basierend auf verschiedenen Bedingungen zu filtern.
Nehmen Sie das folgende Szenario an: Sie müssen Daten aus einer Ansicht mit dem Namen „viewWhatever“ basierend auf den Werten des Standorttypparameters „@locationType“ und des Standort-ID-Parameters „@locationID“ abrufen. Der Standorttyp kann „Standort“, „Gebiet“ oder „Abteilung“ sein.
Verwenden Sie die CASE-Anweisung
Um diese Funktionalität mithilfe einer CASE-Anweisung in der WHERE-Klausel zu erreichen, können Sie die Abfrage wie folgt erstellen:
<code class="language-sql">SELECT column1, column2 FROM viewWhatever WHERE @locationID = CASE @locationType WHEN 'location' THEN account_location WHEN 'area' THEN xxx_location_area WHEN 'division' THEN xxx_location_division END</code>
Beschreibung
Vermeiden Sie redundante Gleichheitsoperatoren
Bitte beachten Sie, dass im bereitgestellten Beispiel der Teil „=@locationID“ am Ende jeder WHEN-Klausel falsch ist. Die CASE-Anweisung selbst weist die richtige Spalte für den Vergleich mit „@locationID“ zu.
Dynamisches SQL
Wenn Ihr Standorttyp und Ihre Spaltennamen beim Schreiben der Abfrage nicht bekannt sind, können Sie mithilfe einer gespeicherten Prozedur oder dynamischen SQL spontan eine CASE-Anweisung erstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine CASE-Anweisung verwenden, um Daten in einer SQL-WHERE-Klausel dynamisch zu filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!