CHARINDEX (Transact-SQL)

指定された式の文字列の中での開始位置を返します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

CHARINDEX ( expression1 ,expression2 [ , start_location ] ) 

引数

  • expression1
    検索対象である文字シーケンスを含むを指定します。expression1 は文字列型に分類されるデータ型です。
  • expression2
    式であり、通常は指定されたシーケンスで検索される列を指定します。expression2 は、文字列型に分類されるデータ型です。
  • start_location
    expression1 の検索を開始する expression2 内の文字の位置を指定します。start_location を指定しない場合、または負の値や 0 を指定した場合は、expression2 の先頭から検索が開始されます。start_location のデータ型は bigint です。

戻り値の型

expression2 のデータ型が varchar(max)nvarchar(max)、または varbinary(max) の場合は bigint になります。それ以外の場合は int になります。

解説

expression1 または expression2 のいずれかが Unicode データ型 (nvarchar または nchar) で、もう一方がこの型でない場合、もう一方も Unicode データ型に変換されます。CHARINDEX を textntext、および image データ型と共に使用することはできません。

expression1 または expression2 のいずれかが NULL の場合、PATINDEX ではデータベース互換性レベルが 70 のときに NULL が返されます。データベースの互換性レベルが 65 以下の場合、PATINDEX では expression1expression2 が両方とも NULL のときだけ NULL が返されます。

expression2 から expression1 を検出できない場合、CHARINDEX は 0 を返します。

CHARINDEX は、入力の照合順序に基づいて比較を行います。特定の照合順序で比較を行うには、COLLATE を使用して、入力に明示的な照合順序を適用します。

開始位置は 0 ではなく 1 を基準とします。

次のコード例は、Document テーブルの DocumentSummary 列で bicycle という文字シーケンスを開始する位置を返します。

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO

以下に結果セットを示します。

----------- 
48          

次の例では、オプションの start_location パラメータを使用して、DocumentSummary 列の 5 文字目から bicycle の検索を開始します。

USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO

以下に結果セットを示します。

----------- 
48          

(1 row(s) affected)

次の例では、expression2 から expression1 が検出できない場合の結果セットを示します。

USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO

以下に結果セットを示します。

----------- 
0          

(1 row(s) affected)

次の例では、COLLATE 関数を使用します。

USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test'  COLLATE Latin1_General_BIN);
GO

参照

関連項目

+ (文字列連結) (Transact-SQL)
文字列関数 (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手