2009-09-07 2 views
18

값을 가장 가까운 정수로 반올림해야하는 SQL을 실행 중입니다.SQL UPDATE에서 가장 가까운 정수로 값을 반올림합니다.

내가 원하는 건 45.01의 최대 46. 또한 45.49의 라운드 46. 그리고 45.99 라운드까지 46도. 나는 모든 것을 하나의 전체 자릿수까지 올리려고한다.

어떻게하면 다음과 같은 UPDATE 문에서이를 수행 할 수 있습니까?

Update product SET price=Round 

답변

23

당신은 적어도 MySQL을의 ceil 기능을 사용할 수 있습니다; 이 부분의 SQL 코드는

select ceil(45.01), ceil(45.49), ceil(45.99); 

때마다 "46"이됩니다.

하여 업데이트

, 그래서, 내가 말하고 싶지만 :

Update product SET price = ceil(45.01) 


을 BTW : MySQL을, ceil 별칭이 ceiling이다; 다른 DB 시스템에 대한 확실하지 당신은 당신이 사용하고있는 DB에 따라 하나 또는 다른 ...


문서 인용 사용해야 할 수도 있습니다 있도록 :

CEILING(X)

반환 가장 작은 정수 값 X.

주어진 예보다 적은 :

,
mysql> SELECT CEILING(1.23); 
     -> 2 
mysql> SELECT CEILING(-1.23); 
     -> -1 
2

이것은 데이터베이스 서버에 따라 다르지만 종종 CEIL 또는 CEILING과 같은 것으로 불립니다. 예를 들어, MySQL은 ...

mysql> select ceil(10.5); 
+------------+ 
| ceil(10.5) | 
+------------+ 
|   11 | 
+------------+ 

당신이 다음 반올림 라운드 기능을 사용하려면 그런 다음 UPDATE PRODUCT SET price=CEIL(some_other_field);

+0

welcome to stackoverflow! 들여 쓰기 된 4 개의 공백은 코드 형식으로되어 있으므로 편집기에서 이진 숫자가있는 단추를 사용하면됩니다. 이 일을하기 위해 당신의 답을 고쳐 주시길 바랍니다! –

3

을 할 수 있습니다. 인수보다 더 작은 정수를 얻고 싶다면 천장 함수를 사용하십시오. 예를 들어

: 이중에서 선택 라운드 (843.4923423423,0가) 당신에게 843과

을 제공

선택 라운드 (843.6923423423,0) 에서 듀얼 (MS SQL의 천장 당신에게 844

+0

가장 가까운 페니로 반올림하고 싶다면 어떻게해야할까요? 세금 납부액이 $ 13.052 인 경우, 최대 $ 13.053까지 반올림해야합니다. 나는 천장()을 사용할 수 있었지만 처음에는 100을 곱한 다음 100으로 나누어야했습니다. – datagod

4

을 제공합니다 귀하의 전화 번호)를 반올림합니다. FLOOR (사용자 번호)를 반올림합니다.

3

천장 사용하려는 명령입니다.

라운드와 달리 천장에는 하나의 매개 변수 (반올림하려는 값) 만 필요하므로 소수 자리로 반올림하려면 소수 자릿수만큼 먼저 곱하고 나중에 나눠야합니다.

예.

소수점 이하 2 자리에 1.2345를 올림합니다.

CEILING(1.2345*100)/100 AS Cost 
관련 문제