SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

CHARINDEX ( 検索文字列, 検索対象文字列[, 位置 ] )


戻り値 : 検索文字列の開始位置または0

CHARINDEXは指定した検索対象文字列データから検索文字列を検索するときに使用します。

また、位置を指定した場合には指定した位置から検索されます。

検索対象文字列に検索文字列が含まれている場合には最初に一致した開始位置が返されます。

しかし、検索対象文字列に検索文字列が含まれていない場合には0が返されます。


関連キーワード





SQL実行例の説明(1)

T1_SAMPLE表のE_NAMEから「ka」を検索します。


SELECT U_ID, E_NAME, CHARINDEX ( 'ka', E_NAME ) AS INDEX_KA FROM T1_SAMPLE;


SQL実行の結果(1-1)

E_NAMEichiro.tanaka, tsukasa.motoyamaに含まれている「ka」の開始位置が返されます。(右)


U_IDK_NAMEE_NAME
u060120佐藤大輔 Daisuke Sato
u060121林原浩二 Koji Hayashihara
u062111大木智子 tomoko ooki
u062122田中一郎 ichiro.tanaka
u063113福田百合子Yuriko.Hukuda
u063125本山司 tsukasa.motoyama
SQL Result
U_IDE_NAMEINDEX_KA
u060120Daisuke Sato 0
u060121Koji Hayashihara 0
u062111tomoko ooki 0
u062122ichiro.tanaka 12
u063113Yuriko.Hukuda 0
u063125tsukasa.motoyama 4



SQL実行例の説明(2)

T1_SAMPLE表のE_NAMEから「ka」を検索するときに位置を指定します。


SELECT U_ID, E_NAME, CHARINDEX ( 'ka', E_NAME, 5 ) AS INDEX_KA FROM T1_SAMPLE;


SQL実行の結果(2-1)

CHARINDEXに位置が指定されているためE_NAMEの5文字目以降に「ka」が含まれているichiro.tanakaのみ開始位置が返されます。(右)

ここで注意することはtsukasa.motoyamaの「ka」開始位置は4であり、指定した位置より前に含まれるため開始位置は0が返されることになります。


U_IDK_NAMEE_NAME
u060120佐藤大輔 Daisuke Sato
u060121林原浩二 Koji Hayashihara
u062111大木智子 tomoko ooki
u062122田中一郎 ichiro.tanaka
u063113福田百合子Yuriko.Hukuda
u063125本山司 tsukasa.motoyama
SQL Result
U_IDE_NAMEINDEX_KA
u060120Daisuke Sato 0
u060121Koji Hayashihara 0
u062111tomoko ooki 0
u062122ichiro.tanaka 12
u063113Yuriko.Hukuda 0
u063125tsukasa.motoyama 0