トップ / 式評価・文字列・型変換

charindex

文字列の中で、指定した部分文字列が最初に現れる位置を求める。

SNOWPARK 静的検証のみ

charindex(lit("world"), col("text"))  # "hello world" → 7

POLARS 実行確認済み

pl.col("text").str.find("world")  # "hello world" → 6

挙動・設計の違い

SnowparkのcharindexはSQLのCHARINDEXPOSITIONの別名)に変換され、公式ドキュメントに「1ベースの位置を返す」と明記されている。Polarsのstr.findは文字列メソッドの慣習に沿って0ベース。実行して確認したところ、"hello world"の中の"world"は、Snowpark側の考え方で数えると7文字目(hが1文字目)、Polars側は6(hが0文字目)と、substringのページと同じ「1ベース vs 0ベース」のずれがここにも現れる。

移行時の落とし穴

charindex引数の順序にも注意が必要(inspect.signatureで確認)=Snowparkは「探したい文字列」が第1引数、「探される側の文字列」が第2引数という、直感(対象が先)と逆の順序。array_containsのページと同じ「値が先、対象が後」という並びなので、混同しやすい関数どうしとして併せて覚えておくとよい。

式評価・文字列・型変換の他のメソッド

出典・検証情報

Polars 1.36.1 で実行確認 / Snowpark Python SDK 1.51.1 で静的検証(2026-08-30)