文字列関数

次の表に、文字列操作関数の一覧を示します。 アプリケーションは、情報の種類が SQL_STRING_FUNCTIONS の SQLGetInfo を呼び出すことによって、ドライバーでサポートされている文字列関数を特定できます。

解説

string_expとして示される引数には、列の名前、文字列リテラル、または基になるデータ型をSQL_CHAR、SQL_VARCHAR、またはSQL_LONGVARCHARとして表すことができる別のスカラー関数の結果を指定できます。

character_expとして示される引数は、可変長の文字列です。

開始長さ、またはカウントとして示される引数には、数値リテラルまたは別のスカラー関数の結果を指定できます。基になるデータ型は、SQL_TINYINT、SQL_SMALLINT、またはSQL_INTEGERとして表すことができます。

ここに記載されている文字列関数は 1 から始まります。つまり、文字列の最初の文字は文字 1 です。

BIT_LENGTH、CHAR_LENGTH、CHARACTER_LENGTH、OCTET_LENGTH、および POSITION 文字列スカラー関数が、SQL-92 に合わせて ODBC 3.0 に追加されました。

機能 説明
ASCII(string_exp) (ODBC 1.0) string_expの左端の文字の ASCII コード値を整数として返します。
BIT_LENGTH(string_exp) (ODBC 3.0) 文字列式の長さ (ビット単位) を返します。

文字列データ型に対してのみ機能しないため、 string_expを 文字列に暗黙的に変換するのではなく、指定されたデータ型の (内部) サイズを返します。
CHAR(code) (ODBC 1.0) コードで指定された ASCII コード値を持つ文字を返します。 コードの値は 0 から 255 の間にする必要があります。それ以外の場合、戻り値はデータ ソースに依存します。
CHAR_LENGTH(string_exp) (ODBC 3.0) 文字列式のデータ型が文字である場合は、文字列式の文字の長さを返します。それ以外の場合は、文字列式の長さをバイト単位 (ビット数を 8 で割った数より小さい最小の整数) で返します (この関数は CHARACTER_LENGTH 関数と同じです)。
CHARACTER_LENGTH(string_exp) (ODBC 3.0) 文字列式のデータ型が文字である場合は、文字列式の文字の長さを返します。それ以外の場合は、文字列式の長さをバイト単位 (ビット数を 8 で割った数より小さい最小の整数) で返します (この関数は、CHAR_LENGTH関数と同じです。
CONCAT(string_exp1,string_exp2) (ODBC 1.0) string_exp2をstring_exp1に連結した結果の文字列を返します。 結果の文字列は DBMS に依存します。 たとえば、string_exp1で表される列に NULL 値が含まれている場合、DB2 は NULL を返しますが、SQL Serverは NULL 以外の文字列を返します。
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) string_exp1とstring_exp2の SOUNDEX 関数によって返される値の差を示す整数値返します。
INSERT(string_exp1, start, length, string_exp2) (ODBC 1.0) 長さ文字がstring_exp1から削除され、先頭から始まり、string_exp2が先頭からstring_expに挿入された文字列を返します
LCASE(string_exp) (ODBC 1.0) すべての大文字が小文字に変換された、 string_expの文字列と等しい文字列を返します。
LEFT(string_exp, count) (ODBC 1.0) string_expの左端のカウント文字を返します。
LENGTH(string_exp) (ODBC 1.0) 末尾の空白を除く 、string_exp 内の文字数を返します。

LENGTH は文字列のみを受け入れます。 したがって、 string_exp を暗黙的に文字列に変換し、(データ型の内部サイズではなく) この文字列の長さを返します。
LOCATE(string_exp1, string_exp2[, start]) (ODBC 1.0) string_exp2内で最初に発生した string_exp1 の開始位置 返します。 省略可能な引数 start が指定されていない限り、string_exp1の最初の出現箇所の検索は、string_exp2の最初の文字位置で始まります。 start を指定した場合、検索は start の値で示される文字位置で始まりますstring_exp2の最初の文字位置は、値 1 で示されます。 string_exp2内にstring_exp1が見つからない場合は、値 0 が返されます。

アプリケーションで 、string_exp1string_exp2および開始 引数を使用して LOCATE スカラー関数を呼び出すことができる場合、 SQLGetInfooption SQL_STRING_FUNCTIONSで呼び出されたときに、ドライバーはSQL_FN_STR_LOCATEを返します。 string_exp1引数とstring_exp2引数のみを使用してアプリケーションが LOCATE スカラー関数を呼び出すことができる場合、sqlGetInfooption SQL_STRING_FUNCTIONSで呼び出されたときに、ドライバーはSQL_FN_STR_LOCATE_2を返します。 2 つまたは 3 つの引数を持つ LOCATE 関数の呼び出しをサポートするドライバーは、SQL_FN_STR_LOCATEとSQL_FN_STR_LOCATE_2の両方を返します。
LTRIM(string_exp) (ODBC 1.0) 先頭の空白が削除 されたstring_expの文字を返します。
OCTET_LENGTH(string_exp) (ODBC 3.0) 文字列式の長さ (バイト単位) を返します。 結果は、ビット数を 8 で割った値以上の最小の整数になります。

文字列データ型に対してのみ機能しないため、 string_expを 文字列に暗黙的に変換するのではなく、指定されたデータ型の (内部) サイズを返します。
POSITION(character_expINcharacter_exp) (ODBC 3.0) 2 番目の文字式の最初の文字式の位置を返します。 結果は、実装定義の有効桁数と小数点以下桁数が 0 の正確な数値になります。
REPEAT(string_exp,count) (ODBC 1.0) 繰り返される回数で構成される文字列string_exp返します。
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) string_exp2の検索string_exp1、string_exp3に置き換えます。
RIGHT(string_exp, count) (ODBC 1.0) string_expの右端のカウント文字を返します。
RTRIM(string_exp) (ODBC 1.0) 末尾の空白が削除 されたstring_exp の文字を返します。
SOUNDEX(string_exp) (ODBC 2.0) string_exp内の単語のサウンドを表すデータ ソースに依存する文字列を返します。 たとえば、SQL Serverは 4 桁の SOUNDEX コードを返します。Oracle は、各単語のふりがなを返します。
SPACE(count) (ODBC 2.0) カウントスペースで構成される文字列を返します。
SUBSTRING(string_exp, start, length**)** (ODBC 1.0) 長さ文字の start で指定された文字位置から始まる、string_expから派生した文字列を返します。
UCASE(string_exp) (ODBC 1.0) すべての小文字が大文字に変換された、 string_expの文字列と等しい文字列を返します。