SQL道場 文字列関数 CHARINDEX関数
SQLで文字列内に含まれる文字列を検索するCHARINDEX関数について記載しています。
対応データベース:SQLServer
CHARINDEX関数の文法
SELECT CHARINDEX(検索する文字列,検索対象の文字列,検索開始位置) FROM テーブル
引数 | 検索する文字列 | 文字列型 ※8000 文字の制限があります。 |
検索対象の文字列 | 文字列型 | |
検索開始位置 | 数値型 | |
返値 | 数値型 検索する文字列が見つかった場合はその位置が、見つからなかった場合は0が戻ります。 検索する文字列がvarchar(max) 、nvarchar(max) 、または varbinary(max) データ型の場合は bigint、それ以外の場合は int。 |
CHARINDEX関数は検索対象の文字列内に含まれる文字列を検索します。文字列検索の開始位置を指定した場合は、その位置から検索し、省略した場合は先頭から検索します。
実行例
SQLServerの実行例
文字列の先頭から検索
/* SQL Server 検索対象の文字列を検索し該当した文字列の位置を返すサンプル */
SELECT STR,CHARINDEX('計画',STR) FROM [testdb].[dbo].[WORK];
最初の位置以外の位置から検索
/* SQL Server 最初の位置以外から検索するサンプル */
SELECT CHARINDEX('BC','Abcdefgbc',4) ;
大文字小文字を区別する検索
/* SQL Server 大文字小文字を区別する検索を実行するサンプル */
SELECT CHARINDEX('BC','Abcdefg' COLLATE Latin1_General_CS_AS) ;
大文字小文字を区別しない検索
/* SQL Server 大文字小文字を区別しない検索を実行するサンプル */
SELECT CHARINDEX('BC','Abcdefg' COLLATE Latin1_General_CI_AS) ;