Skill Note

平凡なエンジニアがメモ代わりにプログラミング, インフラ, ネットワークを書き綴るブログ

[SQL Server]除算時の注意点

      2020/01/09

SQLServerで除算結果が小数になる場合

たとえば、1100グラムをキロに換算する場合は「1100 / 1000」で計算すれば「1.1kg」と求められるが このままSQLを実行すると

SELECT 1100 / 1000 -- 1

結果は「1」となり小数が切り捨てられてしまう

 

除算の結果に小数が含まれる場合は分子か分母を少数型にして計算をおこなう

SELECT 1100.0 / 1000 -- 1.1
SELECT 1100 / 1000.0 -- 1.1
SELECT 1100 / CONVERT(DECIMAL(5,1), 1000)

 

ちなみに、ORACLEの場合は

SELECT 1100 / 1000 FROM DUAL -- 1.1

結果は「1.1」となるので除算の時に考慮しなくてよい

Google AdSense PC

Google AdSense PC

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

sqlserer
[SQL Server]データを期間別に集計する

SQL Serverで集計表を出力 日付をDATETIME型で管理している場合、CONVERT関数、DATEPART関数を使って、日、週、月、年別の集計結果を出 …

oracle
[Oracle]CSALTERを使用してOracle Expressのキャラクタセットを変更する

Oracle Expressでは標準のキャラクタセットとしてAL32UTF8が設定されます。 キャラクタセットを意識しないでデータベースの移行やデータベース間の …

sqlserer
[SQL Server]クロス集計の方法

PIVOTを使ってクロス集計する SQL ServerでExcelのピボットテーブルのようなクロス集計をするには、PIVOT関係演算子を使って集計することができ …

oracle
[Oracle]Data Pumpを使用したデータベースのバックアップ

Data Pump機能のexpdp/impdpコマンドを使用するとデータベース全体、スキーマ単位、表単位など対象範囲を指定したバックアップやリストアを行うことが …

oracle
[Oracle]データベースを再構築してOracle Expressのキャラクタセットを変更する

前回の記事でCSALTERを使用したキャラクタセットの変更方法を記載しましたが、サブセットのキャラクタセットからスーパセットへの変更のみ可能でした。 この記事で …

oracle
[Oracle]WEBサイトやWEB APIをOracleから呼び出す方法

WEBリクエストを送信してレスポンスを表示する OracleからWEBサイトやWEB APIなどのネットワークサービスを呼び出すには、UTL_HTTPパッケージ …

db
[Database]データベースのバージョン/エディションを確認する方法

OracleとSQLServerのバージョン/エディションを確認 Oracle  SELECT * FROM V$VERSION SQLServer SELEC …

oracle
[Oracle]端数処理、丸めの方法

ORACLEで数値の端数処理、数値丸めをする 数値を四捨五入する場合は、ROUND関数 数値を切り捨てる場合は、TRUNC関数 各関数の第2引数の値で、小数部、 …

sqlserer
[SQL Server]再帰SQLで集計する

WITH(共通テーブル式)を使って集計する WITH句とは 共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、CR …

oracle
[Oracle]Oracle Clientのアンインストール方法

Oracle Clientをレジストリを含め完全に削除することがありましたので、この記事では削除手順を記載します。 削除手順ではレジストリを変更しますので十分注 …