Oracle SQL:在 select 查询中需要具有默认一位小数的浮点列
Oracle SQL : Need float column with default one decimal value in select query
我有一个 table DATA_TABLE,它有 MAX_RATE_UNIT 列作为浮点值。
下面是 table 和 MAX_RATE_UNIT 列值,例如
DATA_TABLE
----------
MAX_RATE_UNIT
-----------
1.2
1
3
3.4
0.445
2343.43434
2.123
0.3433423
我想要一个 select 查询,如果列值中没有小数点,则结果 return 至少保留一位小数点,如 1--> 1.0 和 3-> 3.0和 remaing 与 return、
的值相同
输出:
MAX_RATE_UNIT
-------------
1.2
**1.0**
**3.0**
3.4
0.445
2343.43434
2.123
0.3433423
帮我解决这个逻辑,
使用 to_char()
和合适的格式模型将数字显式转换为字符串:
-- CTE for sample data
with data_table (max_rate_unit) as (
select 1.2 from dual
union all select 1 from dual
union all select 3 from dual
union all select 3.4 from dual
union all select 0.445 from dual
union all select 2343.43434 from dual
union all select 2.123 from dual
union all select 0.3433423 from dual
)
-- actual query
select to_char(max_rate_unit, 'FM999999990.099999999') as max_rate_unit
from data_table;
MAX_RATE_UNIT
--------------------
1.2
1.0
3.0
3.4
0.445
2343.43434
2.123
0.3433423
从策略上讲,在小数点前后立即使用 0
而不是 9
意味着对于小于 1 的值,您会得到一个前导零,并且在小数点后至少有一位数字; FM
修饰符停止显示所有尾随数字。
您需要在脚趾格式模型中有足够的占位符,在小数点的两边,以说明您可能必须处理的所有值范围。 (我最初的编辑不够,所以最后一个值的最后一位被默默地截断了...)
我有一个 table DATA_TABLE,它有 MAX_RATE_UNIT 列作为浮点值。
下面是 table 和 MAX_RATE_UNIT 列值,例如
DATA_TABLE
----------
MAX_RATE_UNIT
-----------
1.2
1
3
3.4
0.445
2343.43434
2.123
0.3433423
我想要一个 select 查询,如果列值中没有小数点,则结果 return 至少保留一位小数点,如 1--> 1.0 和 3-> 3.0和 remaing 与 return、
的值相同输出:
MAX_RATE_UNIT
-------------
1.2
**1.0**
**3.0**
3.4
0.445
2343.43434
2.123
0.3433423
帮我解决这个逻辑,
使用 to_char()
和合适的格式模型将数字显式转换为字符串:
-- CTE for sample data
with data_table (max_rate_unit) as (
select 1.2 from dual
union all select 1 from dual
union all select 3 from dual
union all select 3.4 from dual
union all select 0.445 from dual
union all select 2343.43434 from dual
union all select 2.123 from dual
union all select 0.3433423 from dual
)
-- actual query
select to_char(max_rate_unit, 'FM999999990.099999999') as max_rate_unit
from data_table;
MAX_RATE_UNIT
--------------------
1.2
1.0
3.0
3.4
0.445
2343.43434
2.123
0.3433423
从策略上讲,在小数点前后立即使用 0
而不是 9
意味着对于小于 1 的值,您会得到一个前导零,并且在小数点后至少有一位数字; FM
修饰符停止显示所有尾随数字。
您需要在脚趾格式模型中有足够的占位符,在小数点的两边,以说明您可能必须处理的所有值范围。 (我最初的编辑不够,所以最后一个值的最后一位被默默地截断了...)