How to get Decimal/Float Output from Integers Division in SQL Server

I am writing this post to answer once of the question that I posted while back for TSQL Interview Question list

"If I run Select 100/11 what output will I get?"


When you divide Integer by an Integer in SQL Server, SQL Server returns Integer output.

Fig 1: Divide Integer by Integer in SQL Server 

As we can see from our above example, SQL Server output is Integer for Integers division. If we want to get float or Decimal output, Either our denominator or Numerator should be float or decimal type. 
If we have both denominator or numerator as Integers, we can use convert or cast functions to convert one of them to float/decimal so we can get our results as float/decimal.

There are multiple techniques you can use to convert/cast to integer to float/decimal, here are some examples

 SELECT CAST(100 AS FLOAT) /11 AS OutputResultSELECT 100/CAST(11 AS FLOAT) AS OutputResultSELECT 100/CAST(11 AS DECIMAL(12,0)) AS OutputResultSELECT CAST(100 AS DECIMAL(12,0))/11 AS OutputResult


Fig 2: Get Decimal output result from Integer division in SQL Server

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.