2013-07-22 37 views
5

Tôi cần tìm số 10 chữ số tiếp theo trong truy vấn.làm thế nào để làm tròn đến 10 tiếp theo trong oracle?

Tôi cố gắng sử dụng vòng (n, -1) nhưng nó làm tròn tới 10 chữ số gần nhất nhưng tôi cần 10 chữ số tiếp theo.

Hãy giúp tôi.

select round(5834.6,-1) from dual 

cho 5830 nhưng tôi cần 5840

+1

Thêm 10 vào số và làm tròn số tiền. –

Trả lời

1

Sau đó thêm "5":

select round(5834.6 + 5,-1) from dual 
+0

Đó là những gì tôi nghĩ, nhưng http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions135.htm dường như đề nghị làm tròn được sử dụng bởi 'ROUND' là datatype phụ thuộc ... 4.999 sau đó cho khác loai du lieu? – fvu

+0

@fvu. . . Sự phụ thuộc vào kiểu dữ liệu chỉ có hiệu lực khi giá trị nằm giữa một nửa hoặc một bit có thứ tự thấp. Trong mọi trường hợp, dung dịch Sebas phải đáp ứng nhu cầu của bạn. –

9
select ceil(5834.6/10)*10 from dual 
0

Một giải pháp chung - Sử dụng MOD để tìm ra vị trí thứ 10 cuối cùng và sau đó thêm từ 10 đến kết quả.

select (5834.6 - MOD(5834.6,10)) + 10 from dual; 

Nếu bạn cần vị trí thứ 8 tiếp theo, chỉ cần thay thế bất kỳ "10" bằng "8".

Các vấn đề liên quan