Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL TO_CHAR可变长度_Sql_Oracle_Formatting_To Char - Fatal编程技术网

Oracle SQL TO_CHAR可变长度

Oracle SQL TO_CHAR可变长度,sql,oracle,formatting,to-char,Sql,Oracle,Formatting,To Char,我想请您提供有关Oracle SQL中to_CHAR方法的帮助 TO_CHAR(Number_参数,'9999D99','NLS_NUMERIC_CHARACTERS='')vc_num, Number_参数是一个十进制数,通常值在10.10到1999.99之间(但不限于此),我需要创建一个VARCHAR,该值的最小表示形式最多有2个小数点。我的问题是我没有找到一个能满足我需要的面具 我需要200.99作为'200.99',但是10.1作为'10.1',而现在我得到'10.1'(带空格,我不想

我想请您提供有关Oracle SQL中to_CHAR方法的帮助

TO_CHAR(Number_参数,'9999D99','NLS_NUMERIC_CHARACTERS='')vc_num,

Number_参数是一个十进制数,通常值在10.10到1999.99之间(但不限于此),我需要创建一个VARCHAR,该值的最小表示形式最多有2个小数点。我的问题是我没有找到一个能满足我需要的面具

我需要200.99作为
'200.99'
,但是10.1作为
'10.1'
,而现在我得到
'10.1'
(带空格,我不想要)150也应该翻译成
'150'
,而不是
'150.00'


你能帮帮我吗?

正如@a_horse_所建议的那样,使用将去掉前导空格,并且还将删除尾随的零。但它并不完全存在:

with t(number_parameter) as (
  select 200.99 from dual
  union all select 10.10 from dual
  union all select 150.00 from dual
)
select to_char(number_parameter,'FM9999D99','NLS_NUMERIC_CHARACTERS = ''. ''') vc_num
from t;

VC_NUM 
--------
200.99  
10.1    
150.   
要消除尾随周期,您需要对其进行修剪:

with t(number_parameter) as (
  select 200.99 from dual
  union all select 10.10 from dual
  union all select 150.00 from dual
)
select rtrim(
  to_char(number_parameter,'FM9999D99','NLS_NUMERIC_CHARACTERS = ''. '''),
  '.') vc_num
from t;

VC_NUM 
--------
200.99  
10.1    
150
或者,当您发现自己时,也适用于您的数据:

with t(number_parameter) as (
  select 200.99 from dual
  union all select 10.10 from dual
  union all select 150.00 from dual
)
select to_char(number_parameter,'TM') vc_num
from t;

VC_NUM                                                         
----------------------------------------------------------------
200.99                                                          
10.1                                                            
150                                                             

对格式掩码使用
FM
修改器