ipin's blog

best practices don't come easy, it comes with a passion for self-improvment

Divide INT Get Decimal Output In Sql Server

leave a comment »

Anda mungkin terkejut melihat hasil dari perhitungan di SQL Server :

 
SELECT 4 / 5 
 
-----------  
0 
 
(1 row(s) affected)


Hal ini karena SQL Server menjalankan pembagian integer yang mengabaikan desimal/pecahan. Ada beberapa cara untuk mendapatkan hasil yang diinginkan :

 
SELECT 4.0 / 5 
 
SELECT 4 * 1.0 / 5 
 
SELECT CAST(4 AS DECIMAL(5,1)) / 5

Sekarang mungkin anda mendapatkan banyak angka desimal. Untuk mengatasi hal ini, anda dapat menggunakan Cast atau CONVERT untuk menggeser hasil dengan menggunakan 2 desimal:

SELECT CONVERT(DECIMAL(6,2), (4.0 / 5)) 
 
SELECT CAST((4 * 1.0 / 5) AS DECIMAL(6,2))

Atau seperti ini :

SELECT CONVERT(VARCHAR(6), CONVERT(DECIMAL(6,2), (4.0 / 5))) 
 
SELECT CAST(CAST((4 * 1.0 / 5) AS DECIMAL(6,2)) AS VARCHAR(6))

Advertisement

Written by yanuarseno

August 4, 2010 at 8:13 am

Posted in SQL

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.