Table of ContentsPreviousNext

Ispirer             Ispirer


Ispirer SQLWays データベース移行ソフトウェア

文字列から部分列を返す

このサブセクションでは、様々なデータベースでの文字列から部分列を返す関数とSQLWaysによる変換について記述しています。

TABLE 58. 文字列から部分列を返す
データベース
構文
製品
Oracle
SUBSTR (exp1, exp2 
[,exp3]) 
文字列 (exp1)のexp2 の位置からexp3の長さ分の部分列を返します。
 
� もし、exp2 が0なら、1として扱われます
� もし、exp2 が正の値なら、Oracle は文字列の最初からカウントし最初の文字を見つけます
� もし、exp2 が負の値なら、Oracle は文字列の終わりから逆にカウントします
� もし、exp3 が省略された場合、Oracle は文字列の終わりまでの全ての文字を返します
� もし、exp3 が1より少ない場合、ヌルが返されます
 
返されるデータ型exp1と同じ
exp1 は CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB、または NCLOBデータ型のいずれかです。
 
SUBSTRへの引数として浮動小数点の値が渡された場合、自動的に整数に変換されます。
文字列 (exp1)のexp2 の位置からexp3の長さ分の部分列を返します。
もし全ての引数がヌルであれば、結果はヌル値となります。
 
返されるデータ型exp1と同じ
 
exp2 の値はexp1 が固定長か可変長かにより、1からexp1の最大長までの整数でなければなりません。
 
exp3 は結果の長さを示す式です。もし指定された場合、exp3 は0からnまでの整数値でなければなりません。nは (exp1の長さ) - exp2 + 1に等しい値です。
exp3 のデフォルト値は、文字列またはバイナリ列の場合、exp2 で指定されるバイト位置から exp1の最後のバイトまでのバイト数です。グラフィック文字列の場合、exp2 で指定される文字からexp1 の最後の文字までのダブルバイト文字の数になります。しかしながら、もし exp1 が可変長文字列でexp2より短い場合、デフォルトはゼロとなり、結果は空白文字列になります。
IBM DB2
SUBSTR (exp1, exp2 
[,exp3]) 
MySQL
SUBSTRING (exp1, 
exp2 [,exp3]) 
SUBSTRING (exp1 
FROM exp2 [FOR 
exp3]) 
 
文字列 (exp1)のexp2 の位置からexp3の長さ分の部分列を返します。
 
返されるデータ型:exp1と同じ
 
� もし、 exp2 が正の数であれば、SUBSTRING 関数は文字列の最初からカウントし最初の文字を見つけます
� もし、exp2 が負の値ならば、SUBSTRING 関数は文字列の終わりから逆にカウントします (マニュアル未記載)
� もし、exp3 が省略された場合、SUBSTRING 関数は文字列 exp1からexp2以降全ての文字を部分列として返します。
Microsoft SQL Server
 
SUBSTRING (exp1, 
exp2, exp3) 
文字列 (exp1)のexp2 の位置からexp3の長さ分の部分列を返します。
 
exp1 - は文字列、バイナリ列、テキスト、イメージ、カラム、またはカラムを含む式です
 
exp2 - は部分列の開始位置を指定する整数
 
exp3 - は部分列の長さ (返される文字列の長さ)を指定する整数
 
返されるデータタイプ
� もし、式 (exp1) が文字型データタイプであれば、関数は文字データを返します
� もし、式 (exp1) がバイナリデータ型であれば、関数はバイナリデータを返します
� 返される文字列は与えられた式 (exp1) と同じデータ型です。ただし、以下のテーブルに例外条件を示します
与えられた式 (exp1)
返されるデータ型
text
varchar
image
varbinary
ntext
nvarchar
RIGHT (char_exp, 
int_exp) 
文字列 (char_exp) の部分列を返します。返される部分列には終端文字として int_exp が設定されます
 
返されるデータ型: varchar.
 
int_exp は結果の長さを示す式
LEFT    (char_exp, 
int_exp) 
文字列 (char_exp) の部分列を返します。返される部分列には最初の文字として int_exp が設定されます
返されるデータ型: varchar.
int_exp は結果の長さを示す式


Table of ContentsPreviousNext
Ispirer             Ispirer
Copyright © 1999-2015 Ispirer Systems Ltd. Ispirer and SQLWays are trademarks of Ispirer Systems Ltd. All other product names may be trademarks of the respective companies. All rights reserved.