Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Daten abfragen » Die Auswahlliste: Spalten angeben

 

Werte in der SELECT-Liste berechnen

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.

Arithmetische Vorgänge

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
... ...
Vorrang der arithmetischen Operatoren

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.

Zeichenfolgenverarbeitung

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
... ...
Datums- und Zeitvorgänge

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.

Weitere Hinweise zu berechneten Spalten
  • 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.