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_NAMEのichiro.tanaka, tsukasa.motoyamaに含まれている「ka」の開始位置が返されます。(右)
U_ID | K_NAME | E_NAME |
---|---|---|
u060120 | 佐藤大輔 | Daisuke Sato |
u060121 | 林原浩二 | Koji Hayashihara |
u062111 | 大木智子 | tomoko ooki |
u062122 | 田中一郎 | ichiro.tanaka |
u063113 | 福田百合子 | Yuriko.Hukuda |
u063125 | 本山司 | tsukasa.motoyama |
U_ID | E_NAME | INDEX_KA |
---|---|---|
u060120 | Daisuke Sato | 0 |
u060121 | Koji Hayashihara | 0 |
u062111 | tomoko ooki | 0 |
u062122 | ichiro.tanaka | 12 |
u063113 | Yuriko.Hukuda | 0 |
u063125 | tsukasa.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_ID | K_NAME | E_NAME |
---|---|---|
u060120 | 佐藤大輔 | Daisuke Sato |
u060121 | 林原浩二 | Koji Hayashihara |
u062111 | 大木智子 | tomoko ooki |
u062122 | 田中一郎 | ichiro.tanaka |
u063113 | 福田百合子 | Yuriko.Hukuda |
u063125 | 本山司 | tsukasa.motoyama |
U_ID | E_NAME | INDEX_KA |
---|---|---|
u060120 | Daisuke Sato | 0 |
u060121 | Koji Hayashihara | 0 |
u062111 | tomoko ooki | 0 |
u062122 | ichiro.tanaka | 12 |
u063113 | Yuriko.Hukuda | 0 |
u063125 | tsukasa.motoyama | 0 |