- Falsche Ergebnisse in
cast - Nur in Literalen, nicht in
cast - In
castnur eingeschränkt - Auch in binären, oktalen und hexadezimalen Zahlen
Der SQL-Standard erlaubt es Systemen, Unterstriche (_) in Zahlen, die direkt in eine SQL-Anweisung geschrieben sind (Literale) zu ignorieren. Das kann man nutzen, um die Lesbarkeit von Zahlen zu verbessern.
SELECT 1_000_000
, 0.000_001
, 1_2.3_4e5_6
FROM …Unterstriche sind bei allen Literal-Typen erlaubt: In ganze Zahlen, in „Kommazahlen“ und in der Exponentialschreibweise („wissenschaftlichen Notation“). Wenn das System auch Binär-, Oktal- und Hexadezimal-Zahlen unterstützt, ist der Unterstrich auch dort erlaubt. Unterstriche dürfen jedoch nur zwischen zwei Ziffern (des Zahlensystems) stehen und es ist jeweils nur ein Unterstrich zwischen zwei Ziffern erlaubt. Ansonsten gibt es keine Einschränkung – insbesondere muss man damit keine Gruppen aus drei Ziffern bilden.
Die Syntax für Zahlenliterale kommt auch bei einer Typenkonvertierung von Zeichenketten auf Zahlen zum Tragen.0 Daher sind Unterstriche auch in Ausdrücken wie diesem erlaubt: cast('1_000' as integer).
- Liefert keinen Fehler, aber ein falsches Ergebnis. Z. B. nur den Teil vor dem ersten Unterstrich
Weiterführende Links
- Optionale Funktionen
T661, „Non-decimal integer literals“
Normative Referenzen
Der Unterstrich (_) als Gruppenteiler in Zahlen ist in ISO/IEC 9075-2:2023 als optionale Funktion T662, „Underscores in numeric literals“ definiert. Sie erschien erstmals in der Ausgabe von 2023.

