【SQL】 INSTR関数の使い方(文字列を検索する)
INSTR関数は、 ORACLE MS-Access で使用できます。
INSTR関数 : 書式
書式
INSTR(strings1, strings2[, fposition[, count]])
引数
strings1 : 検索対象となる文字列
strings2 : 検索する文字列
fposition:検索開始位置を示す整数
count:検出順番を示す整数
戻値
strings2の検索された位置または「0」
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;
SELECT 検索対象, 検索文字列, INSTR(検索対象, 検索文字列) FROM instr_db;
実行結果
検索対象 | 検索文字列 | INSTR(検索対象, 検索文字列) |
---|---|---|
abcdefgabcdefg | abc | 1 |
abcdefgabcdefg | xyz | 0 |
INSTR関数は、検索対象の文字列の中での検索開始位置を、引数「fposition」で指定することができます。このとき、2バイト文字であるひらがな、カタカナ、漢字なども1文字として数えられます。引数「fposition」を指定しない場合には、「1」が指定されているものとして処理を行います。また、負の整数を指定した場合には、文字列の右端から指定された整数の位置から検索します。
また、INSTR関数は、検索する文字列が、検索対象文字列に複数登場する場合、その何番目に登場したものの位置を返すかも指定できます。引数「count」に正の整数を指定すると、検索された文字列の中から「count」番目の文字列の開始位置を返します。引数「count」を指定しない場合には、「1」が指定されているものとして処理を行っています。
INSTR関数 : 使用例 (検索開始位置を指定)
SQL文
SELECT 検索対象, 検索文字列, INSTR(検索対象, 検索文字列, 4, 1) 位置
FROM instr_db;
SELECT 検索対象, 検索文字列, INSTR(検索対象, 検索文字列, 4, 1) 位置
FROM instr_db;
実行結果
検索対象 | 検索文字列 | 位置 |
---|---|---|
abcdefgabcdefg | abc | 4 |
この例では、検索対象の文字列の4文字目から検索を行い、検索文字列が1番目に検出された位置を返しています。