ホームページ >データベース >mysql チュートリアル >SQL Server の 10 進数値から末尾のゼロを削除するにはどうすればよいですか?

SQL Server の 10 進数値から末尾のゼロを削除するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-14 13:42:44300ブラウズ

How Can I Remove Trailing Zeros from Decimal Values in SQL Server?

SQL Server の 10 進数値から末尾のゼロを削除する方法

多くの SQL Server ユーザーは、10 進数値の末尾にゼロがあるという共通の問題に遭遇します。たとえば、999,123456 のような値を保持するように設計された DECIMAL(9,6) 列は、123,4567 を 123,456700 として格納する可能性があります。

小数精度について理解する

SQL Server の DECIMAL データ型は、(9,6) 表記に示すように、小数点の後に特定の桁数を格納します。これは、列に小数点以下 6 桁を保持できることを意味します。

末尾のゼロの説明

定義された精度を維持するために、10 進数値に末尾のゼロが追加されます。上の例では、値 123,4567 には小数点以下 4 桁しかありませんが、6 桁が必要です。したがって、末尾に 2 つの末尾のゼロが追加されます。

末尾のゼロを削除します

10 進数値から末尾のゼロを削除するには、10 進数を浮動小数点に変換するソリューションを使用できます。

<code class="language-sql">select 
    cast(123.4567 as DECIMAL(9,6))
,   cast(cast(123.4567 as float) as DECIMAL(9,4))</code>

このメソッドは、デフォルトでは浮動小数点数の末尾のゼロが表示されないという事実を利用しています。後続のゼロは、10 進数を浮動小数点に変換し、その後 10 進数に戻すことによって効果的に削除されます。最終結果は有効な小数点以下の桁数を保持したまま DECIMAL(9,4) に変換されることに注意してください。

出力例

上記のクエリは次の出力を生成します:

<code>123.456700  123.4567</code>

この例では、ピリオド (.) が小数点の区切り文字として機能します。 10 進数値は元の精度を保持していますが、末尾のゼロは削除されていることに注意してください。 精度の低下や不必要な丸めを避けるために、適切な精度 (DECIMAL(9,4) など) を選択することが最終結果にとって重要です。

以上がSQL Server の 10 進数値から末尾のゼロを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。