Heim > Datenbank > MySQL-Tutorial > Kann ich IF-Anweisungen in MS SQL WHERE-Klauseln verwenden?

Kann ich IF-Anweisungen in MS SQL WHERE-Klauseln verwenden?

Patricia Arquette
Freigeben: 2025-01-11 06:49:42
Original
741 Leute haben es durchsucht

Can I Use IF Statements in MS SQL WHERE Clauses?

Verwendung der IF-Anweisung in der MS SQL WHERE-Klausel

Ist es möglich, eine IF-Anweisung in die WHERE-Klausel von MS SQL einzubetten? Ist beispielsweise die folgende Syntax gültig?

<code class="language-sql">WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'</code>
Nach dem Login kopieren

Lösung:

Die obige Syntax ist ungültig. Die gleiche Funktionalität kann mit der CASE-Anweisung erreicht werden:

<code class="language-sql">WHERE OrderNumber LIKE
  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
    @OrderNumber 
  ELSE
    '%' + @OrderNumber + '%'
  END</code>
Nach dem Login kopieren

Alternativ kann eine IF-Anweisung verwendet werden, jedoch innerhalb einer gespeicherten Prozedur oder einer anderen Kontrollflussstruktur:

<code class="language-sql">IF IsNumeric(@OrderNumber) = 1
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber = @OrderNumber;
END
ELSE
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber LIKE '%' + @OrderNumber + '%';
END</code>
Nach dem Login kopieren

Es ist zu beachten, dass die Verwendung der IF-Anweisung direkt in der WHERE-Klausel nicht zulässig ist. Die CASE-Anweisung bietet eine präzisere und SQL-kompatiblere Möglichkeit, mit bedingter Logik umzugehen. Wenn Sie eine IF-Anweisung verwenden müssen, müssen Sie diese in einer gespeicherten Prozedur oder einer anderen Umgebung platzieren, die Kontrollflussanweisungen zulässt.

Das obige ist der detaillierte Inhalt vonKann ich IF-Anweisungen in MS SQL WHERE-Klauseln verwenden?. 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