2011-01-24 32 views

Trả lời

27
SELECT TO_CHAR(696585242087, '99G999G999G9999', 'NLS_NUMERIC_CHARACTERS=",."') 
FROM dual 
+3

+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 –

+1

Đ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? –

16

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.

1

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

SqlDeveloper Example

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