SUBSTRINGとSUBSTRの動作は同一ですが、サーバー文字セットがKANJI1でクライアント文字セットがKanjiEBCDICの場合の文字列に対してTeradataモードで動作する場合は例外です。
その場合、SUBSTRはn1とn2を物理単位として解釈するので、DB2準拠のSUBSTRがバイト単位で実行されることになります。結果が正しく書式設定されない場合があるので、シフトアウトとシフトインのバイトは重要です。例えば、結果文字列には、開く側のシフトアウト文字と、閉じる側のシフトイン文字のいずれかが含まれないことがあります。
それ以外の場合で、string_expressionが文字データの場合、SUBSTRINGは1バイト文字とマルチバイト文字の混合文字列を予想し、そのセッションの文字セットで有効な論理文字に対して実行されます。その場合は、n1が結果の最初の文字を指す正の整数になり、n2が論理文字ベースになります。