0Pricing
Coding Interview Prep · Lektion

Berechnete Spalten und die Rangfolge von Ausdrücken

Arithmetik, Verkettung und die Rangfolge von Operatoren innerhalb von SELECT-Listen

Berechnete Spalten und die Rangfolge von Ausdrücken ist eine kostenlose Coding Interview Prep-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Coding Interview Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Berechnete Spalten in SELECT

Eine berechnete Spalte ist ein Ausdruck in SELECT, der einen Wert ableitet, statt ihn direkt auszulesen – etwa price * quantity. Geben Sie ihr immer einen aussagekräftigen Alias.

SELECT product,
       price,
       quantity,
       price * quantity AS line_total
FROM order_items;

Arithmetische Operatoren

SQL bietet die erwarteten mathematischen Operatoren: +, -, *, / sowie den Modulo-Operator. Der Typ des Ergebnisses richtet sich nach den Operanden – und genau dort verbirgt sich die nächste Stolperfalle.

SELECT 7 + 3 AS sum_val,
       7 - 3 AS diff_val,
       7 * 3 AS prod_val,
       7 % 3 AS remainder;

Die Falle der Ganzzahldivision

Vorsicht: Die Division zweier Ganzzahlen führt eine Ganzzahldivision aus, daher ergibt 5 / 2 den Wert 2 und nicht 2.5. Beheben Sie das Problem, indem Sie eine Seite in einen Dezimaltyp umwandeln oder mit 1.0 multiplizieren.

SELECT 5 / 2          AS int_div,    -- 2
       5 * 1.0 / 2    AS real_div,   -- 2.5
       CAST(5 AS DECIMAL) / 2 AS cast_div; -- 2.5

Operatorrangfolge

SQL folgt der normalen mathematischen Rangfolge: * und / werden vor + und - ausgeführt. Daher ergibt 2 + 3 * 4 den Wert 14 und nicht 20. Klammern setzen sich über alles hinweg.

SELECT 2 + 3 * 4      AS no_parens,  -- 14
       (2 + 3) * 4    AS with_parens; -- 20

Rangfolge in einer echten Rabattabfrage

Fehler bei der Rangfolge treten besonders gern in Geschäftslogik auf. Bei einem rabattierten Preis ist price - price * rate korrekt, weil * zuerst ausgeführt wird. Prüfen Sie stets anhand eines Plausibilitätstests, welche Gruppierung die Engine tatsächlich verwendet.

SELECT price,
       discount_rate,
       price - price * discount_rate / 100 AS net_price
FROM products;

Verketten von Zeichenfolgen

Das Verketten von Text hängt von der Datenbank ab: || in Postgres und im SQL-Standard, + in SQL Server und CONCAT() in MySQL. CONCAT() ist die sichere, portable Wahl.

-- Postgres / standard
SELECT first_name || ' ' || last_name AS full_name
FROM employees;

-- Portable
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;

NULL vergiftet arithmetische Ausdrücke

Ein wichtiger Punkt: Jede Rechnung mit NULL ergibt NULL. Daher ist base_salary + bonus für alle Personen ohne Bonus NULL. Schließen Sie riskante Spalten in COALESCE ein, um einen Standardwert bereitzustellen.

SELECT base_salary,
       bonus,
       base_salary + bonus            AS unsafe_total,
       base_salary + COALESCE(bonus,0) AS safe_total
FROM employees;

Verketten und NULL je nach Dialekt

NULL betrifft auch Text, und die Dialekte unterscheiden sich: In Postgres verschwindet die gesamte Zeichenfolge, während CONCAT in SQL Server NULL als leer behandelt. Schließen Sie jedes Teilstück in COALESCE ein, um eine vorhersehbare Ausgabe zu erhalten.

SELECT COALESCE(first_name,'') || ' ' || COALESCE(last_name,'') AS full_name
FROM employees;

Funktionen innerhalb von Ausdrücken

Berechnete Spalten können problemlos Funktionen wie ROUND, ABS oder UPPER enthalten. Ein Funktionsaufruf ist einfach ein weiterer Ausdruck, daher können Sie ihn direkt in Ihre Berechnung verschachteln.

SELECT product,
       ROUND(price * quantity * 1.0, 2) AS line_total,
       UPPER(product)                   AS product_caps
FROM order_items;

Typkonvertierung und CAST

Wenn sich die Operandentypen unterscheiden, führt SQL eine implizite Typkonvertierung durch, die zu Überraschungen führen kann. Verwenden Sie explizit CAST(expr AS type) – Interviewer werten das als sorgfältigen, defensiven Code.

SELECT 'Order #' || CAST(order_id AS VARCHAR) AS label
FROM orders;

Boolesche Ausdrücke als Spalten

Ein Vergleich wie price > 100 ist selbst ein Ausdruck. Postgres kann ihn als true/false auswählen, die portable Lösung verwendet jedoch CASE, um 1/0 oder eine Bezeichnung auszugeben.

-- Portable
SELECT product,
       CASE WHEN price > 100 THEN 1 ELSE 0 END AS is_pricey
FROM products;

Kurzer Test

Werten Sie den Ausdruck aus.

Zusammenfassung

Zusammenfassung: Vergeben Sie Aliase für Ihre berechneten Spalten. Verwenden Sie für Dezimaldivisionen CAST, achten Sie auf die Rangfolge, nutzen Sie CONCAT() für portablen Text – und denken Sie daran, dass NULL jede Rechnung zu NULL macht; schützen Sie sich daher mit COALESCE davor.

Häufig gestellte Fragen

Ist die Lektion „Berechnete Spalten und die Rangfolge von Ausdrücken“ kostenlos?

Ja — der vollständige Text von „Berechnete Spalten und die Rangfolge von Ausdrücken“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Coding Interview Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Coding Interview Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Berechnete Spalten und die Rangfolge von Ausdrücken“?

Arithmetik, Verkettung und die Rangfolge von Operatoren innerhalb von SELECT-Listen Du übst Coding Interview Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Coding Interview Prep zu starten?

Keine Vorkenntnisse erforderlich. Coding Interview Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Berechnete Spalten und die Rangfolge von Ausdrücken“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Coding Interview Prep-Lektion Code schreiben und ausführen?

Ja. Jede Coding Interview Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Spalten projizieren und Fallstricke bei Aliasen
  2. Berechnete Spalten und die Rangfolge von Ausdrücken
  3. DISTINCT oder GROUP BY für Eindeutigkeit
  4. CASE-Ausdrücke in SELECT
← Zurück zu Coding Interview Prep