【SQL】 INSTR関数の使い方(文字列を検索する)

文字列関数
文字列関数
この記事は約3分で読めます。
Recommended Articles

【SQL】 INSTR関数の使い方(文字列を検索する)

INSTR関数は、 ORACLE  MS-Access で使用できます。

INSTR関数 : 書式

書式 
 INSTR(strings1, strings2[, fposition[, count]])
引数 
 strings1 : 検索対象となる文字列
 strings2 : 検索する文字列
 fposition:検索開始位置を示す整数
 count:検出順番を示す整数
戻値 
 strings2の検索された位置または「0」

INSTR関数 : 解説

INSTR関数は、文字列から特定の文字列を検索する関数です、検索するのは引数「strings1」で指定した文字列の中に、引数「strings2」で指定した文字列があるかどうかです。

「strings1」の文字列の中に「strings2」の文字列が存在する場合は、「strings2」の文字列が、「strings1」の文字列の中で何文字目から始まっているかを返します。もしも、「strings1」の中に「strings2」の文字列がない場合には、「0」が返されます。

INSTR関数 : 使用例

SQL文 
SELECT 検索対象, 検索文字列, INSTR(検索対象, 検索文字列) FROM instr_db;
実行結果
検索対象検索文字列INSTR(検索対象, 検索文字列)
abcdefgabcdefgabc1
abcdefgabcdefgxyz0

INSTR関数は、検索対象の文字列の中での検索開始位置を、引数「fposition」で指定することができます。このとき、2バイト文字であるひらがな、カタカナ、漢字なども1文字として数えられます。引数「fposition」を指定しない場合には、「1」が指定されているものとして処理を行います。また、負の整数を指定した場合には、文字列の右端から指定された整数の位置から検索します

また、INSTR関数は、検索する文字列が、検索対象文字列に複数登場する場合、その何番目に登場したものの位置を返すかも指定できます。引数「count」に正の整数を指定すると、検索された文字列の中から「count」番目の文字列の開始位置を返します。引数「count」を指定しない場合には、「1」が指定されているものとして処理を行っています。

INSTR関数 : 使用例 (検索開始位置を指定)

SQL文
SELECT 検索対象, 検索文字列, INSTR(検索対象, 検索文字列, 4, 1) 位置
FROM instr_db;
実行結果
検索対象検索文字列位置
abcdefgabcdefgabc4

この例では、検索対象の文字列の4文字目から検索を行い、検索文字列が1番目に検出された位置を返しています。

MSAccessでは、引数「fposition」と「count」を指定することができません。
INSTR関数と同じ処理を行うものに、INSTRB関数があります。この関数は引数「fposition」と「count」の指定が文字数ではなくバイト数で指定することになります。
Recommended Articles