異なる文字列内のある文字列の位置を返します。
LOCATE( string-expression-1, string-expression-2 [, integer-expression ] )
string-expression-1 検索される文字列。
string-expression-2 検索する文字列。この文字列は 255 バイトに制限されています。
integer-expression 文字列内の、検索を開始する位置。最初の文字の位置は 1 です。開始オフセットが負の場合は、最初に一致した文字列ではなく、最後に一致した文字列のオフセットを返します。負のオフセットは、文字列の末尾のどれだけの部分が検索から除外されるかを示します。除外されるバイト数は、(-1 * offset) -1 で計算されます。
INT
integer-expression を指定すると、文字列のオフセットから検索が開始します。
最初の文字列には長い文字列 (255 バイト以上) を指定できますが、2 番目の文字列は 255 バイトに制限されます。長い文字列を 2 番目の引数として指定すると、LOCATE 関数は NULL 値を返します。文字列が見つからない場合は、0 を返します。長さ 0 の文字列を検索すると、1 を返します。いずれかの引数が NULL の場合は、結果は NULL です。
マルチバイト文字が使用され、適切な照合が使用されている場合は、開始位置と返される値はバイトで計算した位置と異なる場合があります。
この関数は NCHAR の入力または出力をサポートしています。
SQL/2003 ベンダ拡張。
次の文は、値 8 を返します。
SELECT LOCATE( 'office party this week - rsvp as soon as possible', 'party', 2 ); |
次の文は、
BEGIN DECLARE STR LONG VARCHAR; DECLARE POS INT; SET str = 'c:\test\functions\locate.sql'; SET pos = LOCATE( str, '\', -1 ); select str, pos, SUBSTR( str, 1, pos -1 ) AS path, SUBSTR( str, pos +1 ) AS filename; END; |
次の出力を返します。
str | pos | path | filename |
---|---|---|---|
c:\test\functions\locate.sql | 18 | c:\test\functions | locate.sql |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |