【发布时间】:2015-07-24 14:45:03
【问题描述】:
目前我有 CAST($Variable AS varchar2(30))。
我想添加最小和最大精度。例如,1234567.89 中小数点左侧的整数应该最小为 1,但最大为 5(因此多余的整数将被修剪)。此外,我想对比例做同样的事情 - 右边的小数,通过设置最少两位小数和最多四位小数。这些数字只是示例,数字会动态更新。
根据我的阅读,我必须在 CAST 的 type_name 中以某种方式设置精度和比例,但我不确定如何使用多个最小值和最大值来做到这一点。我是 Oracle 菜鸟,如果有任何帮助,我将不胜感激!
【问题讨论】:
-
如果您尝试将变量转换为 varchar(即字符串),那么最小/最大精度不适用...您是否尝试将数字转换为字符串?还是字符串转数字?
-
请使用示例数据和所需结果编辑您的问题。在 SQL 的上下文中,规模和精度的最小值和最大值是什么并不清楚。
-
@Ditto,感谢您的回复。我正在尝试将数字转换为字符串。如果我使用 To_Char,它看起来像这样: To_Char($Num,'FM' || RPAD(RPAD(LPAD(LPAD('.',least($intmaxlength,$intminlength)+1,'0'),$ intmaxlength+1,'9'),$intmaxlength+1+$decminlength,'0'),$intmaxlength+1+$decmaxlength,'9'))
-
@GordonLinoff,感谢您的耐心等待,这是我在 StackOverflow 上的第一个问题。我用更好的例子重写了这个问题并提高了清晰度。如果我需要详细说明,请告诉我。
-
我不相信 CAST 会做你想做的事 .. 现在尝试一些事情 ..
标签: sql oracle plsql relational-database