【发布时间】:2019-02-28 13:44:45
【问题描述】:
我可以使用它来获得所需的格式:
SELECT TO_CHAR(12345,'99G999') "Amount" FROM DUAL;
SELECT TO_CHAR(123456,'999G999') "Amount" FROM DUAL;
SELECT TO_CHAR(1234567,'9G999G999') "Amount" FROM DUAL;
有没有这样不用检查长度的方法?:
select case
when length(my_number) = 5 then TO_CHAR(my_number,'99G999')
when length(my_number) = 6 then TO_CHAR(my_number,'999G999')
【问题讨论】:
-
您只需要足够的 9s(和 Gs)来获得您期望处理的最长值。额外的前导无关紧要 - 除了默认情况下它们会在结果中添加空格。为什么你认为你需要 case 表达式?