Database

[SQL Server]除算時の注意点

sqlserer Database

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」となるので除算の時に考慮しなくてよい

タイトルとURLをコピーしました