Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 関数 » SQL 関数 (E ~ O)

 

LOCATE 関数 [文字列]

異なる文字列内のある文字列の位置を返します。

構文
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