Wie führe ich eine IF...THEN
in einem SQL SELECT
Aussage?
Zum Beispiel:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
Wie führe ich eine IF...THEN
in einem SQL SELECT
Aussage?
Zum Beispiel:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
Sie haben zwei Möglichkeiten, dies tatsächlich umzusetzen:
Verwendung von IIF, das mit SQL Server 2012 eingeführt wurde:
SELECT IIF ( (Obsolete = 'N' OR InStock = 'Y'), 1, 0) AS Saleable, * FROM Product
Verwendung von Select Case
:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
Die Verwendung von SQL CASE ist genau wie normale If/Else-Anweisungen. In der unten stehenden Abfrage, wenn veraltet Wert = 'N' oder wenn InStock Wert = 'Y' dann Ausgabe wird 1 sein. Andernfalls wird der Wert 0 ausgegeben. Dann wird der Wert 0 oder 1 unter der Spalte "Verkaufbar" eingetragen.
SELECT
CASE
WHEN obsolete = 'N' OR InStock = 'Y'
THEN 1
ELSE 0
END AS Salable
, *
FROM PRODUCT
Es ist genau wie normale If/Else-Anweisungen. Wenn der veraltete Wert = 'N' oder wenn der InStock-Wert = 'Y' ist, wird 1 ausgegeben. Andernfalls wird der Wert 0 ausgegeben.
Ich danke Ihnen. Bitte Editar Ihren Beitrag um diese Erklärung zu ergänzen. Zum Beispiel: Die If..Then...Else..
Verwendung von Aussagen in SQL
wie folgt....
Hallo Surjeet Singh Bisht; Ihr Code mag zwar korrekt sein, aber mit etwas Kontext wäre er eine bessere Antwort. Sie könnten zum Beispiel erklären, wie und warum diese vorgeschlagene Änderung das Problem des Fragestellers lösen würde, vielleicht mit einem Link zur entsprechenden Dokumentation. Das würde die Antwort für den Fragesteller nützlicher machen, und auch für andere Leser der Website, die nach Lösungen für ähnliche Probleme suchen.
Diese Antwort fügt nichts Neues hinzu. Tatsächlich war genau diese Zeile bereits Teil der akzeptierten Antwort seit über 5 Jahren .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
17 Stimmen
Das sollten Sie sich ansehen Link . Bezüglich: SQL WHERE-Klauseln: Vermeiden Sie CASE, verwenden Sie boolesche Logik
4 Stimmen
@Somebody: Das ist nicht wirklich relevant, denn in dem Artikel geht es darum, logische Umschreibregeln zu verwenden, um eine Implikation in eine Disjunktion umzuwandeln. Der Hinweis ist das Wort "logisch", d. h. etwas, das sich in wahr oder falsch auflöst, was für die Projektion nicht zutrifft. TL;DR Artikel gilt für
WHERE
yCHECK
aber nichtSELECT
.7 Stimmen
Die Antwort von @MartinSmith ist die eleganteste - verwenden Sie IIF in SQL 2012+.