SQLのINSTR()関数の実装方法はどうすればよいですか?
みなさん、こんにちは!今回の記事では、SQLのINSTR()関数について詳しく解説します。
SQLのINSTR()の動作
SQLは、クエリ言語であり、データベースの文字列データ値を扱うためのさまざまな組み込み関数を含んでいます。
そのような興味深い機能の1つは、SQLのINSTR()関数です。
SQLのINSTR()関数は、他の文字列の中で最初に指定した文字列または文字の出現を検出します。したがって、INSTR()関数は、他の文字列データ値の中で任意の文字列または部分文字列の初め/最初の出現位置を示します。
SQL INSTR()関数の動作を理解したら、同じ構造と文法を使って進めましょう。
INSTR()の構文を理解する
SQLのINSTR()関数は、2つのパラメータを受け入れます。
- String/character to search for in the other String data value.
- The string within which the occurrence of the character/string would be searched for.
INSTR(string1, string2);
INSTR(インストラクション)関数は、検索対象の文字列の最初の出現位置を示す整数値を返します。
次のセクションでは、さまざまな例を通じてINSTR()関数の実装を理解しましょう。
例を通じてSQLのINSTR()を実装する
以下の例では、SQLのINSTR()関数は入力文字列データ内で文字 ‘P’ の最初の出現を検索します。
SELECT INSTR('JYPython', 'P');
日本語で省略フォームで以下を表現してください。一つのオプションで十分です。
出力:
3
文字列内での最初の文字の出現を検索する以外にも、INSTR() 関数は文字列の値とも連携します。
ここでは、入力データの中で最初に文字列「JournalDev」が現れる場所を検索し、その位置の値を返します。
SELECT INSTR('Python@JournalDev', 'JournalDev');
出力:
8
この例では、異なる列を持つテーブルを作成しました。テーブル「Info」の列「city」に存在する各データ値の最初の文字「a」のインデックスを表示しようとしました。
create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Puna");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Puna");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");
SELECT city, INSTR(city, "a") as 1st_Occurrence_of_a
FROM Info;
この本は非常に興味深いです。 (Kono hon wa hijō ni kyōmi-bukai desu.)
city 1st_Occurrence_of_a
Puna 4
Satara 2
Puna 4
Mumbai 5
USA 3
もし文字列/文字の最初の出現を検索する対象が、文字列に含まれていない場合、INSTR関数はゼロ(0)を返します。
SELECT INSTR('Python', 'xx');
出力:
0
結論
以上で、このトピックは終わりです。もし疑問がある場合、コメント欄に自由にご意見をお寄せください。
同様のSQLに関連する記事をもっと読みたい場合は、SQL JournalDevをご覧ください。
参考文献
- SQL INSTR() function – Documentation