2010-01-08 7 views
1

: 내가 좋아하는 숫자가 계속SQL 서버 주조, 반올림

AVG (cast(scale as decimal(5,2))) 

: 0.6523412897은 내가 아무것도 내 원하는 날을받을 것 같다 : 0.65. 기본적으로 소수 자리 2 자리로 소수점 2자를 사용하고 싶습니다. 감사

답변

1

캐스트를 평균하지 않는,

ROUND(AVG(scale), 2) 
+0

지금 내가 가진 : 라운드 (AVG (캐스트 진수로 (스케일)), 2) 내를 결과는 1.95000 ..... 어떻게 후행 0을 제거합니까, 그래서 나는 단지 1.95를 얻습니까? – bmw0128

8

캐스트 평균을 시도해보십시오

cast(AVG(scale) as decimal(5,2)) 

업데이트

ROUND()이 값이 아닌 유형을 변경 사용. 예 : select round(0.12345,2)은 0.12345에서 0.12를 반올림하지만 점 뒤에 5 개의 소수점이있는 원래 유형을 유지하므로 0.12000을 반환합니다. 따라서 0.12000입니다. 유형을 변경하려면 내 게시물에서와 같이 캐스트를 사용해야합니다.

+0

내가 변하면 : cast (AVG (scale) as decimal (5,2)), 나는 정밀도를 잃어 버린다. 평균은 정수이므로, 결과는 1.00, 2.00 등이된다. – bmw0128

+0

(AVG (cast) (십진수 (5,2)로 표시))을 [AVG]와 같이 10 진수 (5,2)로 표시해야합니다. – bmw0128

0

그것은 당신이 사용중인 데이터베이스에 따라 다르지만, ROUND는 SQL Server에 대한 답변입니다 :

ROUND