T661, „Non-decimal integer literals“


BigQueryDb2 (LUW)DerbyH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite2005200720092011201320152017201920212023⚡ 3.8.11 - 3.50.0b⚡ 3.5.7 - 3.8.3a⚠ 2008R2 - 2022b✓ 16 - 17d⊘ 8.3 - 15⊘ 11gR1 - 23.9⚡ 5.0 - 9.3.0a⚡ 5.1 - 12.0.2a⚠ 2.2.220 - 2.3.232bc⚠ 1.4.192 - 2.1.214b⊘ 10.15.1.3 - 10.17.1.0⊘ 9.7 - 12.1.2⚠ 2.0b
  1. Falsche Ergebnisse in cast
  2. Nur hexadezimal, nicht binär oder oktal
  3. Nur in Literalen, nicht in cast
  4. Auch mit Unterstrichen (_) zwischen den Ziffern

Der SQL-Standard definiert eine Syntax zur Verwendung von binären, oktalen und hexadezimalen Zahlen in SQL-Anweisungen.

SELECT 0b101010
     , 0o52
     , 0x2A
  FROM …

Dafür muss der jeweiligen Zahl 0b für Binär, 0o für Oktal oder 0x für Hexadeximal vorangestellt werden. Zwischen diesem Präfix und der eigentlichen Zahl darf kein Leerraum stehen. Bei den Buchstaben wird nicht zwischen Groß- und Kleinschreibung unterschieden. Weder im Präfix noch in den hexadezimalen Zahlen selbst.

Die Syntax für Zahlenliterale kommt auch bei einer Typenkonvertierung von Zeichenketten auf Zahlen zum Tragen.0 Daher sind die Beispiele auch in Ausdrücken wie diesem erlaubt: cast('0o52' as integer).

BigQuery 2025-09-02Db2 (LUW) 12.1.2Derby 10.17.1.0H2 2.3.232MariaDB 12.0.2aaaMySQL 9.3.0aaaOracle DB 23.9PostgreSQL 17SQL Server 2022SQLite 3.50.0aaa0b1010100o520x2ACAST('0b101010' AS …)CAST('0o52' AS …)CAST('0x2A' AS …)
  1. Liefert keinen Fehler, aber ein falsches Ergebnis. Z. B. nur die „0“ vor dem ersten Buchstaben
Optional Features

Normative References

Ganzzahlige Literale mit der Basis 2, 8, oder 16 sind in ISO/IEC 9075-2:2023 als optionale Funktion T661, „Non-decimal integer literals“ definiert. Diese Funktion erschien erstmals mit der Ausgabe von 2023.

20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS, um sukzessive aufzuholen und modern-sql.com am Radar zu behalten.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Fußnoten

  1. ISO/IEC 9075-2:2023 §6.13 GR 8b

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2015-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO