Guys tôi muốn in các dữ liệu sau với giá trị tách dấu phẩy sử dụng oracle sqloracle sql truy vấn đến số định dạng bằng dấu phẩy
696585242087
to
69,658,524,2087
và tương tự cho các số thập phân.
Guys tôi muốn in các dữ liệu sau với giá trị tách dấu phẩy sử dụng oracle sqloracle sql truy vấn đến số định dạng bằng dấu phẩy
696585242087
to
69,658,524,2087
và tương tự cho các số thập phân.
SELECT TO_CHAR(696585242087, '99G999G999G9999', 'NLS_NUMERIC_CHARACTERS=",."')
FROM dual
+1 Cho phép [quốc gia] (http://en.wikipedia.org/wiki/Decimal_separator#Countries_using_Arabic_numerals_with_decimal_comma) sử dụng dấu phẩy thập phân –
Điều gì sẽ xảy ra nếu tôi không biết có bao nhiêu chữ số mà số nguồn có, ý tôi là ở đó bất kỳ mẫu nào để nhóm 3 chữ số bất kể độ dài của số không? –
hãy xem để to_char: http://www.oradev.com/oracle_number_format.jsp
Xem the Oracle docs cho tất cả sự điên rồ mà có thể được thực hiện để định dạng số. Phiên bản ngắn là bạn cần hàm "TO_CHAR" và cung cấp chuỗi định dạng cho đầu ra:
TO_CHAR(col_name, '999,999,999,999')
Nên làm những gì bạn cần.
Lấy bản cập nhật của Dead programmer s (24/Jan/2011) (tác giả ban đầu của câu hỏi) và những nhận xét của Amir Pashazadeh (5/Mar/2016), chúng tôi có thể nhận được các dấu phẩy mong muốn tách ra định dạng với ví dụ sau.
Mã này áp dụng cho số với bằng hoặc ít hơn 15 chữ số, nếu bạn sẽ cần cho chiều dài lớn hơn, bạn nên bổ sung thêm 999.999 theo với tối đa chiều dài bạn sẽ quản lý.
SELECT TRIM(TO_CHAR(12345678, '999,999,999,999,999')) ttry FROM DUAL
UNION ALL
SELECT TRIM(TO_CHAR( 1234, '999,999,999,999,999')) ttry FROM DUAL
;
Kết quả:
TTRY
12.345.678
1.234
Tại sao bạn sẽ muốn có một dấu phẩy trước quyền nhất 4 chữ số? – MatBailie
xin lỗi đó là ví dụ. –