to_char相信大家都用过,因为像我这样的sql小白痴都用过哦~~~~~
恩恩,相信大家用to_char的主要原因跟我差不多,将日期类型转换为字符类型。。。
其实to_char还有很多神奇的功能的,比如将数字类型的格式化为字符类型~~~~
先举几个有趣的例子吧:
1,将3转换为大写罗马字符
select to_char(3,'RM') from dual;
III
2,将13.10强制保留小数点后的0
select to_char( 13.10 ,'FM99.90') from dual;
13.10
举完例子看理论~~~~
TO_CHAR(NUM[,'format_model'[,nlsparams]])
将NUMBER类型参数NUM转换成VARCHAR2类型。如果指定FORMAT,它会控制整个转换。
如果没有指定FORMAT,那么结果字符串中将包含和NUM中有效位的个数相同的字符。NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:'NLS_NUMERIC_CHARS=' ' dg ' 'NLS_CURRENCY= ' 'string' ' '
d和g分别代表小数点和千分符。STRING代表货币符号。
数字格式控制符:
9 代表一位数字(替换符。有,数字显示;没有。什么都不显示。)
0 代表一位数字(有数字,显示;没有,强制显示0。)
$ 美圆符号
L 本地货币
. 小数点
, 千分符
B 当整数部分为0时,将整数部分填充为空格。 例:B999
MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI
S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S
PR 使用尖括号返回负数。正数将有前导或后继空格。999PR
D 在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9
G 在指定位置返回千分符,G可以在FORMAT_model中出现多次。9G999G9
C 在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99
L 在指定位置上返回本地货币符号。 L99
V 返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99
EEEE 使用科学记数法返回该数值。9.99EEEE
RM 使用大写的罗马数字表示返回该数值。 RM
rm 使用小写的罗马数字表示返回该数值。 rm
FM 返回不含前导和后继空格的数值。 FM99.09
格式控制符位数一定要大于或等于NUMBER的位数,不能小于。
恩恩,相信大家用to_char的主要原因跟我差不多,将日期类型转换为字符类型。。。
其实to_char还有很多神奇的功能的,比如将数字类型的格式化为字符类型~~~~
先举几个有趣的例子吧:
1,将3转换为大写罗马字符
select to_char(3,'RM') from dual;
III
2,将13.10强制保留小数点后的0
select to_char( 13.10 ,'FM99.90') from dual;
13.10
举完例子看理论~~~~
TO_CHAR(NUM[,'format_model'[,nlsparams]])
将NUMBER类型参数NUM转换成VARCHAR2类型。如果指定FORMAT,它会控制整个转换。
如果没有指定FORMAT,那么结果字符串中将包含和NUM中有效位的个数相同的字符。NLSPARAMS用来指定小数点和千分符及货币符号。它的格式可为:'NLS_NUMERIC_CHARS=' ' dg ' 'NLS_CURRENCY= ' 'string' ' '
d和g分别代表小数点和千分符。STRING代表货币符号。
数字格式控制符:
9 代表一位数字(替换符。有,数字显示;没有。什么都不显示。)
0 代表一位数字(有数字,显示;没有,强制显示0。)
$ 美圆符号
L 本地货币
. 小数点
, 千分符
B 当整数部分为0时,将整数部分填充为空格。 例:B999
MI 返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI
S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S
PR 使用尖括号返回负数。正数将有前导或后继空格。999PR
D 在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9
G 在指定位置返回千分符,G可以在FORMAT_model中出现多次。9G999G9
C 在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99
L 在指定位置上返回本地货币符号。 L99
V 返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99
EEEE 使用科学记数法返回该数值。9.99EEEE
RM 使用大写的罗马数字表示返回该数值。 RM
rm 使用小写的罗马数字表示返回该数值。 rm
FM 返回不含前导和后继空格的数值。 FM99.09
格式控制符位数一定要大于或等于NUMBER的位数,不能小于。