目次

Search

  1. はじめに
  2. タスクフローとリニアタスクフロー
  3. タスクフロー
  4. リニアタスクフロー

タスクフロー

タスクフロー

instr

instr

文字列の中で、指定した文字が左から数えて何文字目にあるかを返します。

構文

sff:instr(str, search, start, occurrence, comparison_type)
次の表に、引数を示します。
引数
必須/オプション
説明
str
必須
評価を行う値を渡します。
文字列はすべて文字である必要があります。有効なトランスフォーメーション式を必要に応じて入力できます。
式の結果は文字列である必要があります。文字列ではない場合、評価の前にinstrによって値が文字列に変換されます。
search
必須
検索を行う文字または文字列を指定します。
有効なトランスフォーメーション式を必要に応じて入力できます。文字列を検索する場合は、検索する文字を一重引用符または二重引用符で囲みます。
値は、文字列の一部に一致する必要があります。例えば、
INSTR('Alfred Pope', 'Alfred Smith')
を使用した場合、関数は0を返します。
値は大文字と小文字が区別されます。
start
オプション
文字列内で検索を開始する位置を示します。有効なトランスフォーメーション式を必要に応じて入力できます。値は整数でなければなりません。
デフォルト値は1です。つまり、instrは文字列の最初の文字から検索を開始します。
開始位置がゼロの場合、instrは文字列の最初の文字から検索を開始します。開始位置が正の数である場合、instrは文字列の先頭からその数だけ数えた位置から検索を開始します。開始位置が負の数である場合、instrは文字列の最後からその数だけ数えた位置から検索を開始します。この引数を省略すると、関数はデフォルト値の1を使用します。
occurrence
オプション
有効なトランスフォーメーション式を必要に応じて入力できます。検索値が文字列内に複数回出現する場合、何回目の出現を検索するかを指定できます。たとえば、開始位置から2回目に出現する検索値を検索する場合は、2を入力します。
0より大きい正の整数を入力できます。
この引数を省略すると、関数はデフォルト値の1を使用します。この場合、instrは最初に出現する検索値を検索します。固定小数点値を渡すと、関数はそれを最も近い整数値に丸めます。負の整数または0を渡すと、関数は無効になります。
comparison_type
オプション
言語またはバイナリの文字列比較タイプ。
言語比較では言語固有の照合規則を考慮し、バイナリ比較ではビット単位の比較を行います。例えば、ドイツ語のシャープ文字であるsは、言語比較では文字列"ss"に一致しますが、バイナリ比較では一致しません。バイナリ比較は、言語比較よりも短い時間で実行されます。
次の整数値のいずれかを入力する必要があります。
  • 0: INSTRは言語文字列比較を行います。
  • 1: INSTRはバイナリ文字列比較を行います。
デフォルトは0です。

戻り値

検索が成功した場合は、整数。この整数は、
search
因数の最初の文字が文字列内で左から数えて何文字目にあるかを示します。
検索に失敗した場合は、0です。
instrにNULL値を渡した場合はNULLになります。

次の式は、それぞれの会社名の先頭を基準に、文字‘a’が最初に出現する位置を返します。
sff:instr( COMPANY, 'a' )
次の表に、一部のサンプル値と戻り値を示します。
COMPANY
RETURN VALUE
Blue Fin Aqua Center
13
Maco Shark Shop
2
Scuba Gear
5
Frank's Dive Shop
3
VIP Diving Club
0
search
引数では大文字と小文字が区別されるため、‘Blue Fin Aqua Center’の‘A’をスキップして、‘Aqua’の‘a’の位置を返します。
次の式は、それぞれの会社名の先頭を基準に、文字‘a’が2回目に出現する位置を返します。
sff:instr( COMPANY, 'a', 1, 2 )
次の表に、一部のサンプル値と戻り値を示します。
COMPANY
RETURN VALUE
Blue Fin Aqua Center
0
Maco Shark Shop
8
Scuba Gear
9
Frank's Dive Shop
0
VIP Diving Club
0
search
引数では大文字と小文字が区別されるため、‘Blue Fin Aqua Center’の‘A’をスキップして、0を返します。
次の式は、それぞれの会社名の最後の文字を基準に、文字‘a’が2回目に出現する位置を返します。
sff:instr( COMPANY, 'a', -1, 2 )
次の表に、一部のサンプル値と戻り値を示します。
COMPANY
RETURN VALUE
Blue Fin Aqua Center
0
Maco Shark Shop
2
Scuba Gear
5
Frank's Dive Shop
0
VIP Diving Club
0
search
引数では大文字と小文字が区別されるため、‘Blue Fin Aqua Center’の‘A’をスキップして、0を返します。
次の式は、それぞれの会社名の最後の文字を基準に、文字列‘Blue Fin Aqua Center’で最初に出現する文字の位置を返します。
sff:instr( COMPANY, 'Blue Fin Aqua Center', -1, 1 )
次の表に、一部のサンプル値と戻り値を示します。
COMPANY
RETURN VALUE
Blue Fin Aqua Center
1
Maco Shark Shop
0
Scuba Gear
0
Frank's Dive Shop
0
VIP Diving Club
0