ホームページ >データベース >mysql チュートリアル >SQL Server 列から先頭のゼロを効率的に削除するにはどうすればよいですか?
SQL Server の列から先頭のゼロを削除する従来の方法は、SUBSTRING
関数と PATINDEX
関数を組み合わせて使用することです。ただし、この方法では、「0」文字のみを含む列を処理する場合に問題が発生する可能性があります。
この制限を回避するためのより堅牢な解決策は、チェック対象の文字列の末尾にピリオド (.) を追加することです。
<code class="language-sql">SUBSTRING(str_col, PATINDEX('%[^0]%', str_col+'.'), LEN(str_col))</code>
この期間により、PATINDEX
は先頭にゼロしかない列であっても、常に「0」以外の文字の一致を見つけることができます。
もう 1 つの方法は、TRIM
関数と REPLACE
関数を使用することです:
<code class="language-sql">REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')</code>
ただし、この方法では埋め込みスペースを扱う場合には注意が必要です。スペースが「0」に変換されないようにするには、カスタムのスカラー ユーザー定義関数 (UDF) を使用できます。スカラー UDF は SQL Server 2005 でパフォーマンスの問題を引き起こす可能性があるため、可能な場合は他の方法を検討することをお勧めします。
以上がSQL Server 列から先頭のゼロを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。