1. ホーム
  2. sql

[解決済み] SQL Serverで先頭のゼロをトリミングするためのより良いテクニック?

2022-03-01 10:34:36

質問

私はこれまで これ を以前から使用しています。

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のパフォーマンスに関する問題が多く見受けられますね。

解決方法は?

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