ある文字列の中から指定した文字の開始位置を取得する

 
文書番号:20498




ある文字列の中から指定した文字を探し、その文字の開始位置を取得する関数です。

【関数】

CHARINDEX(探す文字,対象の文字列,検索を開始する位置)

【戻り値】

結果 説明
見つかった開始位置 1から始まる開始位置を示す数値が返ります。
見つからなかった場合は0が返ります。

【サンプル】

'ABCDEBFG'という文字列の中から'B'がどの位置にあるかを検索します。
複数ある場合は最初に見つかった位置が返ります。

SELECT CHARINDEX('B','ABCDEBFG')
-------------------------
2
'ABCDEBFG'という文字列の中から3文字目以降で'B'がどの位置にあるかを検索します。
複数ある場合は最初に見つかった位置が返ります。
開始位置を指定した場合も返る値は最初から何番目か。です。

SELECT CHARINDEX('B','ABCDEBFG',3)
-------------------------
6
テーブルを参照して、ある列のデータ内に'APPLE'がどの位置にあるかを検索します。

SELECT CHARINDEX('Apple',COL01)
FROM   TAB_A
テーブルを参照して、ある列のデータ内に'APPLE'がどの位置にあるかを大文字と小文字を区別せずに検索します。

SELECT CHARINDEX('Apple',COL01 COLLATE Latin1_General_CI_AS)
FROM   TAB_A

【参考情報】

[MSDN] CHARINDEX (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms186323%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396