Die Ausdrücke in der Auswahlliste können komplizierter sein als nur Spaltennamen oder Zeichenfolgen. Sie können beispielsweise Berechnungen mit Daten aus nummerischen Spalten in einer Auswahlliste vornehmen.
Um die nummerischen Vorgänge darzustellen, die Sie in der Auswahlliste vornehmen können, starten Sie mit einer Liste der Namen, der Lagermengen und der Stückpreise der Artikel aus der SQL Anywhere-Beispieldatenbank.
SELECT Name, Quantity, UnitPrice FROM Products; |
Name | Quantity | UnitPrice |
---|---|---|
Tee Shirt | 28 | 9 |
Tee Shirt | 54 | 14 |
Tee Shirt | 75 | 14 |
Baseball Cap | 112 | 9 |
... | ... | ... |
Nehmen wir einmal an, die Regel für den Warenumschlag lautet, dass das Lager aufgefüllt wird, wenn nur noch weniger als 10 Stück vorhanden sind. In der folgenden Abfrage wird die Anzahl der Artikel angezeigt, die verkauft werden müssen, bevor eine Nachbestellung erfolgt ("Sell before reorder"):
SELECT Name, Quantity - 10 AS "Sell before reorder" FROM Products; |
Name | Sell before reorder |
---|---|
Tee Shirt | 18 |
Tee Shirt | 44 |
Tee Shirt | 65 |
Baseball Cap | 102 |
... | ... |
Sie können die Werte auch in Spalten zusammenfassen. In der folgenden Abfrage wird der Gesamtwert der einzelnen Artikel aus dem Lager aufgelistet ("Inventory value"):
SELECT Name, Quantity * UnitPrice AS "Inventory value" FROM Products; |
Name | Inventory value |
---|---|
Tee Shirt | 252.00 |
Tee Shirt | 756.00 |
Tee Shirt | 1050.00 |
Baseball Cap | 1008.00 |
... | ... |
Wenn mehr als ein arithmetischer Operator in einem Ausdruck vorhanden ist, werden Multiplikation, Division und Modulo zuerst berechnet, dann Subtraktion und Addition. Wenn alle arithmetischen Operatoren in einem Ausdruck denselben Vorrang haben, erfolgt die Durchführung von links nach rechts. Ausdrücke in Klammern haben Vorrang vor allen anderen Vorgängen.
Beispiel: Die folgende SELECT-Anweisung berechnet den Gesamtwert der einzelnen Artikel auf Lager und subtrahiert dann fünf Dollar von diesem Wert.
SELECT Name, Quantity * UnitPrice - 5 FROM Products; |
Um korrekte Ergebnisse sicherzustellen, verwenden Sie soweit möglich Klammern. Die folgende Abfrage hat dieselbe Bedeutung und liefert dieselben Ergebnisse wie die vorherige Abfrage, ist aber präziser.
SELECT Name, ( Quantity * UnitPrice ) - 5 FROM Products; |
Siehe auch Vorrang der Operatoren.
Sie können Zeichenfolgen verketten, indem Sie einen entsprechenden Operator benutzen. Verwenden Sie dafür || (SQL/2003-kompatibel) oder + (unterstützt von Adaptive Server Enterprise) als Operator für die Verkettung von Zeichenfolgen. Beispiel: Die folgende Anweisung ruft "GivenName"- und "Surname"-Werte ab und verkettet sie in den Ergebnissen:
SELECT EmployeeID, GivenName || ' ' || Surname AS Name FROM Employees; |
EmployeeID | Name |
---|---|
102 | Fran Whitney |
105 | Matthew Cobb |
129 | Philip Chin |
148 | Julie Jordan |
... | ... |
Obwohl Sie Operatoren für Spalten mit Datums- und Zeitangaben verwenden können, sollten dafür normalerweise Funktionen herangezogen werden. Weitere Hinweise finden Sie unter SQL-Funktionen.
Spalten kann ein Alias gegeben werden Standardmäßig ist der Spaltenname der in der Auswahlliste aufgeführte Ausdruck. Für berechnete Spalten ist der Ausdruck jedoch etwas umständlich und nicht sehr informativ.
Andere Operatoren können verwendet werden Der Multiplikationsoperator kann zum Kombinieren von Spalten verwendet werden. Sie können auch andere Operatoren verwenden, einschließlich der normalen arithmetischen Operatoren sowie der logischen und Zeichenfolgenoperatoren.
Die folgende Abfrage listet z.B. den vollständigen Namen aller Kunden auf:
SELECT ID, (GivenName || ' ' || Surname ) AS "Full name" FROM Customers; |
Der Operator ||
verkettet Zeichenfolgen. In dieser Abfrage enthält der Alias für die Spalte Leerstellen und muss daher in Anführungszeichen
eingeschlossen werden. Diese Regel gilt nicht nur für Spaltenaliase, sondern auch für Tabellennamen und andere Bezeichner
in der Datenbank. Weitere Hinweise finden Sie unter Operatoren.
Funktionen können verwendet werden Zusätzlich zu den Optionen für die Kombination von Spalten können Sie eine Vielzahl integrierter Funktionen verwenden, um die gewünschten Ergebnisse zu erhalten.
Die folgende Abfrage listet z.B. die Produktnamen in Großbuchstaben auf:
SELECT ID, UCASE( Name ) FROM Products; |
ID | UCASE(Products.name) |
---|---|
300 | TEE SHIRT |
301 | TEE SHIRT |
302 | TEE SHIRT |
400 | BASEBALL CAP |
... | ... |
Weitere Hinweise finden Sie unter SQL-Funktionen.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |