Ich habe eine SQL-Anweisung mit einem CASE
von SELECT
und kann es einfach nicht richtig machen. Könnt ihr mir ein Beispiel zeigen, CASE
wo die Fälle die Bedingungen sind und die Ergebnisse aus den Fällen stammen? Beispielsweise:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
wo die Ergebnisse zeigen
name age handphone
xxx1 yyy1 blackberry
xxx2 yyy2 blackberry
sql
sql-server
case
fadzli feizal
quelle
quelle
Antworten:
Der MSDN ist eine gute Referenz für diese Art von Fragen bezüglich Syntax und Verwendung. Dies ist von der Seite Transact SQL Reference - CASE.
http://msdn.microsoft.com/en-us/library/ms181765.aspx
Eine weitere gute Site, die Sie möglicherweise überprüfen möchten, wenn Sie SQL Server verwenden, ist SQL Server Central . Hier stehen eine Vielzahl von Ressourcen für jeden Bereich von SQL Server zur Verfügung, den Sie erlernen möchten.
quelle
Ich denke, diese könnten für Sie hilfreich sein.
Verwenden einer
SELECT
Anweisung mit einem einfachenCASE
AusdruckInnerhalb einer
SELECT
Anweisung ermöglicht ein einfacherCASE
Ausdruck nur eine Gleichheitsprüfung. Es werden keine weiteren Vergleiche durchgeführt. Im folgenden Beispiel wird derCASE
Ausdruck verwendet, um die Anzeige von Produktlinienkategorien zu ändern und sie verständlicher zu machen.Verwenden einer
SELECT
Anweisung mit einem gesuchtenCASE
AusdruckInnerhalb einer
SELECT
Anweisung ermöglicht der gesuchteCASE
Ausdruck, dass Werte in der Ergebnismenge basierend auf Vergleichswerten ersetzt werden. Im folgenden Beispiel wird der Listenpreis als Textkommentar basierend auf der Preisspanne für ein Produkt angezeigt.Verwendung
CASE
in einerORDER BY
KlauselIn den folgenden Beispielen wird der
CASE
Ausdruck in einerORDER BY
Klausel verwendet, um die Sortierreihenfolge der Zeilen basierend auf einem bestimmten Spaltenwert zu bestimmen. Im ersten Beispiel wird der Wert in der Spalte SalariedFlag der Tabelle HumanResources.Employee ausgewertet. Mitarbeiter, deren SalariedFlag auf 1 gesetzt ist, werden von der BusinessEntityID in absteigender Reihenfolge in der Reihenfolge zurückgegeben. Mitarbeiter, deren SalariedFlag auf 0 gesetzt ist, werden von der BusinessEntityID in aufsteigender Reihenfolge zurückgegeben. Im zweiten Beispiel wird die Ergebnismenge nach der Spalte TerritoryName sortiert, wenn die Spalte CountryRegionName gleich 'USA' ist, und nach CountryRegionName für alle anderen Zeilen.Verwendung
CASE
in einerUPDATE
AnweisungIm folgenden Beispiel wird der
CASE
Ausdruck in einerUPDATE
Anweisung verwendet, um den Wert zu bestimmen, der für die Spalte VacationHours für Mitarbeiter mit SalariedFlag auf 0 festgelegt ist. Wenn das Subtrahieren von 10 Stunden von VacationHours zu einem negativen Wert führt, wird VacationHours um 40 Stunden erhöht. Andernfalls wird die Urlaubszeit um 20 Stunden erhöht. DieOUTPUT
Klausel wird verwendet, um die Werte vor und nach dem Urlaub anzuzeigen.Verwendung
CASE
in einerHAVING
KlauselIm folgenden Beispiel wird der
CASE
Ausdruck in einerHAVING
Klausel verwendet, um die von derSELECT
Anweisung zurückgegebenen Zeilen einzuschränken . Die Anweisung gibt den maximalen Stundensatz für jede Berufsbezeichnung in der Tabelle HumanResources.Employee zurück. DieHAVING
Klausel beschränkt die Titel auf diejenigen, die von Männern mit einem Höchstlohn von mehr als 40 Dollar oder von Frauen mit einem Höchstlohn von mehr als 42 Dollar gehalten werden.Weitere Informationen zu diesem Beispiel finden Sie in der Quelle .
Besuchen Sie auch hier und hier einige Beispiele mit vielen Details.
quelle
Sie können auch verwenden:
quelle