5. Which SQL statements would display the value 1890.55 as $1,890.55? (Choose three .)
A. SELECT TO_CHAR(1890.55,'$0G000D00')
FROM DUAL;
B. SELECT TO_CHAR(1890.55,'$9,999V99')
FROM DUAL;
C. SELECT TO_CHAR(1890.55,'$99,999D99')
FROM DUAL;
D. SELECT TO_CHAR(1890.55,'$99G999D00')
FROM DUAL;
E. SELECT TO_CHAR(1890.55,'$99G999D99')
FROM DUAL;
Answer: ADE
答案解析:
G表示分组分隔符group
D表示小数点decimal point
V表示移动N位(小数点),乘以10的n次方后面跟几位就是几次方
如:
to_char(12,'99V999') ' 12000'
to_char(12.4,'99V999') ' 12400'
to_char(12.45, '99V9') ' 125'
0表示补齐位数。
实验验证
hr@TEST0924> SELECT TO_CHAR(1890.55,'$0G000D00') FROM DUAL;
TO_CHAR(18
----------
$1,890.55
hr@TEST0924> SELECT TO_CHAR(1890.55,'$9,999V99') FROM DUAL;
TO_CHAR(1
---------
$1,89055
hr@TEST0924> SELECT TO_CHAR(1890.55,'$99,999D99') FROM DUAL;
SELECT TO_CHAR(1890.55,'$99,999D99') FROM DUAL
*
ERROR at line 1:
ORA-01481: invalid number format model
hr@TEST0924> SELECT TO_CHAR(1890.55,'$99G999D00') FROM DUAL;
TO_CHAR(189
-----------
$1,890.55
hr@TEST0924> SELECT TO_CHAR(1890.55,'$99G999D99') FROM DUAL;
TO_CHAR(189
-----------
$1,890.55