[英]Oracle SQL TO_CHAR variable length
我想向您尋求有關Oracle SQL中TO_CHAR方法的幫助。
TO_CHAR(Number_parameter,'9999D99','NLS_NUMERIC_CHARACTERS = ''. ''') vc_num,
Number_Parameter以十進制數形式出現,通常的值在10.10到1999.99之間(但不限於此)我需要創建一個VARCHAR,其值的最小表示形式最多為2個小數點。 我的問題是我還沒有找到滿足我需要的口罩。
我需要200.99作為'200.99'
但需要10.1作為'200.99'
10.1 '10.1'
而現在我得到的是' 10.1 '
(帶有空格,我不想)也應該轉換為'150'
而不是'150.00'
你能幫我嗎?
正如@a_horse_with_no_name所建議的那樣,使用FM格式修飾符將去除前導空格,還將刪除尾隨零。 但這還不完全是:
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
或者,如您所知, TM
文本最小格式模型也適用於您的數據:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.