SQL中的数字格式

SQL中的数字格式,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个数字需要格式化如下: 需要使用 小数需要用, 例如,number1234567.89需要看起来像1.234.567,89 有没有什么方法可以用一个简单的sql函数来实现这一点,或者我必须创建自己的函数?将to_char()与您希望使用的规范一起使用,作为十进制分隔符,作为千位分隔符(这不是Oracle中的默认值) 结果为:1.234.567,89 有关格式模型的详细信息: 关于to_char()函数的详细信息:使用to_char()以及要使用,作为十进制分隔符和作为千位分隔符的规范(

我有一个数字需要格式化如下:

  • 需要使用
  • 小数需要用
例如,number
1234567.89
需要看起来像
1.234.567,89

有没有什么方法可以用一个简单的sql函数来实现这一点,或者我必须创建自己的函数?

to_char()
与您希望使用的规范一起使用
作为十进制分隔符,
作为千位分隔符(这不是Oracle中的默认值)

结果为:
1.234.567,89

有关格式模型的详细信息:

关于to_char()函数的详细信息:

使用
to_char()
以及要使用
作为十进制分隔符和
作为千位分隔符的规范(这不是Oracle中的默认值)

结果为:
1.234.567,89

有关格式模型的详细信息:


关于to_char()函数的详细信息:

您也可以使用会话区域设置

create table mytest (field1 number);
insert into mytest values (1234567.89);
alter session set NLS_TERRITORY=GERMANY;
select field1, to_char(field1,'9G999G999G999D00') from mytest;
alter session set NLS_TERRITORY=AMERICA;
select field1, to_char(field1,'9G999G999G999D00') from mytest;
输出:

Table created.
1 row created.
Session altered.

    FIELD1 TO_CHAR(FIELD1,'9G999G999G999D00')
---------- ----------------------------------
1234567,89      1.234.567,89                 
1 row selected.
Session altered.

    FIELD1 TO_CHAR(FIELD1,'9G999G999G999D00')
---------- ----------------------------------
1234567.89      1,234,567.89                 
1 row selected.

您也可以使用会话区域设置

create table mytest (field1 number);
insert into mytest values (1234567.89);
alter session set NLS_TERRITORY=GERMANY;
select field1, to_char(field1,'9G999G999G999D00') from mytest;
alter session set NLS_TERRITORY=AMERICA;
select field1, to_char(field1,'9G999G999G999D00') from mytest;
输出:

Table created.
1 row created.
Session altered.

    FIELD1 TO_CHAR(FIELD1,'9G999G999G999D00')
---------- ----------------------------------
1234567,89      1.234.567,89                 
1 row selected.
Session altered.

    FIELD1 TO_CHAR(FIELD1,'9G999G999G999D00')
---------- ----------------------------------
1234567.89      1,234,567.89                 
1 row selected.

您提到
PL/SQL
作为标记。您是否使用Oracle DBMS?1234567.89的数据类型是什么?它是否作为
VARCHAR2
存储或传递?RDBMS是Oracle,对吗?数据库中的数据类型是数字,看起来像1234567.89是的,我在Oracle DBMS中工作,这不是真正的SQL问题。在上面的层中设置格式。更改
nls\u numeric\u characters=,.
system/session-wide的值,或者将
用作字符(number\u col,'fm999G999G990D099','nls\u numeric\u characters=,。)
函数您提到的
PL/SQL
作为标记。您是否使用Oracle DBMS?1234567.89的数据类型是什么?它是否作为
VARCHAR2
存储或传递?RDBMS是Oracle,对吗?数据库中的数据类型是数字,看起来像1234567.89是的,我在Oracle DBMS中工作,这不是真正的SQL问题。在上面的层中设置格式。更改
nls\u数字字符=,.
system/session-wide的值,或使用
转换为字符(数字列,'fm999g990d099','nls\u数字字符=,。。)
函数