Firebird hat ab 1.0 eine eingebaute SUBSTR-Funktion mit folgender Syntax:

SUBSTRING ( FROM [FOR ])

Dabei müssen sowohl als auch Konstanten sein.

Das erste Zeichen ist 1, nicht 0.

Als Datentypen können nebem char und varchar auch BLOBs (Binary und Subtype
1 = Text) verwendet werden. Sowohl als auch geben dabei die
Position in Bytes an, d.h. bei mehrbytes-Zeichensätzen klappt SUBSTRING in
BLOBs nicht immer.