2013-01-04 28 views
18

tôi muốn hiển thị/chuyển đổi một số thành ký tự (có cùng độ dài) bằng cách sử dụng hàm to_char().to_char (số) chức năng trong postgres

Trong oracle tôi có thể viết như

SELECT to_char(1234) FROM DUAL 

Nhưng trong postgres SELECT to_char(1234) không hoạt động.

Trả lời

31

Bạn cần cung cấp mặt nạ định dạng. Trong PostgreSQL không có mặc định:

select to_char(1234, 'FM9999'); 

Nếu bạn không biết có bao nhiêu chữ số có, chỉ cần ước lượng tối đa:

select to_char(1234, 'FM999999999999999999'); 

Nếu số còn ít chữ số, điều này sẽ không có bất kỳ tác dụng phụ nào.

Nếu bạn không cần bất kỳ định dạng (như dấu thập phân, hàng ngàn separator), bạn cũng có thể chỉ đơn giản là đúc các giá trị văn bản:

select 1234::text 
+0

Làm cách nào tôi có thể tìm ra đối số thứ hai (giá trị bằng số chữ số được chỉ định) cho các giá trị khác nhau (có độ dài khác nhau). – jobi88

+0

@ jobi88: tất cả đều được ghi trong sách hướng dẫn: http://www.postgresql.org/docs/current/static/functions-formatting.html –

+0

Tôi không thể tìm ra điều chính xác cho tôi. Có cách nào để có được, có bao nhiêu 9s tôi cần phải thêm để có được số đầy đủ. Ví dụ như trong oracle tôi có thể viết như thế nào. SELECT to_char (ac_no) từ tài khoản. (ở đây giá trị ac_no có thể có độ dài khác nhau). Trong trường hợp này làm thế nào tôi có thể tìm ra đối số thứ hai? – jobi88

0

Bạn có thể sử dụng:

1234||'' 

Nó hoạt động trên hầu hết các cơ sở dữ liệu.

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