SQL Server で先頭のゼロをトリミングするためのより良いテクニックはありますか? 質問する

SQL Server で先頭のゼロをトリミングするためのより良いテクニックはありますか? 質問する

私は使っていますこれしばらくの間:

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))

しかし最近、「00000000」のようにすべて「0」の文字の列では、一致する「0」以外の文字が見つからないという問題が見つかりました。

私が見た代替テクニックは、以下を使用することですTRIM

REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')

埋め込まれたスペースがある場合、スペースが「0」に戻されると、スペースも「0」に変換されるため、問題が発生します。

スカラー UDF を避けようとしています。SQL Server 2005 の UDF にはパフォーマンス上の問題が多数あることがわかりました。

ベストアンサー1

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))

おすすめ記事