文字列のパターンが最初に出現した開始位置を表す整数を返します。
PATINDEX( '%pattern%', string-expression )
pattern 検索するパターン。先頭の % ワイルドカードを省略すると、PATINDEX 関数は、パターンが文字列の先頭に出現する場合は 1 を返し、それ以外の場合は 0 を返します。
Ultra Light のパターンは、次のワイルドカードを使用します。
ワイルドカード | 一致するもの |
---|---|
_ (アンダースコア) | 任意の 1 文字 |
% (パーセント記号) | 0 個以上の文字からなる任意の文字列 |
[] | 指定範囲内、または一連の指定文字の任意の 1 文字 |
[^] | 指定範囲外、または一連の指定文字以外の任意の 1 文字 |
string-expression パターンを検索する文字列。
INT
PATINDEX 関数は、パターンが最初に出現した開始位置を返します。パターンが見つからない場合は、0 を返します。
SQL/2003 ベンダ拡張。
次の文は、値 2 を返します。
SELECT PATINDEX( '%hoco%', 'chocolate' ); |
次の文は、値 11 を返します。
SELECT PATINDEX( '%4_5_', '0a1A 2a3A 4a5A' ); |
次の文は、14 を返します。これは、文字列式の最初の英数字以外の文字です。データベースで大文字と小文字が区別されない場合は、'%[^a-zA-Z0-9]%'
の代わりにパターン '%[^a-z0-9]%'
を使用できます。
SELECT PATINDEX( '%[^a-zA-Z0-9]%', 'SQLAnywhere11 has many new features' ); |
文字列の最初の英数字を取得するには、次の手順に従います。
SELECT LEFT( @string, PATINDEX( '%[^a-zA-Z0-9]%', @string ) ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |