Khi sử dụng TO_CHAR()
để định dạng một số trong Cơ sở dữ liệu Oracle, bạn có thể sử dụng S
phần tử định dạng để trả về dấu của nó (tức là dấu cộng cho giá trị dương và dấu trừ cho giá trị âm).
Bạn cũng có thể sử dụng MI
phần tử định dạng để trả về giá trị âm với dấu âm ở cuối và giá trị dương có dấu trống ở cuối.
Ví dụ về S
Định dạng phần tử
Dưới đây là một ví dụ để chứng minh S
phần tử định dạng:
SELECT
TO_CHAR(-7, 'S9') AS "Negative",
TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL;
Kết quả:
Negative Positive ___________ ___________ -7 +7
S
phần tử định dạng có thể được áp dụng cách khác ở vị trí cuối cùng của mô hình định dạng. Điều này dẫn đến dấu hiệu được thêm vào kết quả:
SELECT
TO_CHAR(-7, '9S') AS "Negative",
TO_CHAR(7, '9S') AS "Positive"
FROM DUAL;
Kết quả:
Negative Positive ___________ ___________ 7- 7+
Nhưng S
phần tử định dạng không thể xuất hiện ở cả hai đầu của mô hình định dạng. Nếu có, một lỗi xảy ra:
SELECT TO_CHAR(7, 'S9S')
FROM DUAL;
Kết quả:
Error report - ORA-01481: invalid number format model
MI
Định dạng phần tử
MI
phần tử định dạng dấu âm ở cuối trong trường hợp số là số âm và dấu trống ở cuối khi số dương:
SELECT
TO_CHAR(-7, '9MI') AS "Negative",
TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL;
Kết quả:
Negative Positive ___________ ___________ 7- 7
Lưu ý rằng MI
phần tử định dạng chỉ có thể xuất hiện ở vị trí cuối cùng của mô hình định dạng. Nếu nó ở bất kỳ vị trí nào khác, sẽ xảy ra lỗi:
SELECT TO_CHAR(7, 'MI9')
FROM DUAL;
Kết quả:
Error report - ORA-01481: invalid number format model