求教To_number转化问题

瞌觉兴国 2015-08-27 01:38:47
原句
select x.exp_report_header_id 头ID,
x.exp_report_line_id 行ID,
x.report_amount 总金额,
y.expense_object_desc 税码,
to_number(h.description,'9999') 总金额X税码
from exp_report_lines x,
exp_report_objects y,
EXP_REPORT_OBJECTS z,
exp_expense_object_types_vl h
where x.exp_report_line_id = y.exp_report_line_id
and x.exp_report_line_id = z.exp_report_line_id
and h.expense_object_type_id = z.expense_object_type_id
and h.expense_object_type_code = 'TAX_CODE'
and x.exp_report_header_id = 179840

句子的意思是查出税额是多少(即总金额×税码) 税码是 varchar类型的 值为 6%
我想把它转化成 number类型好做运算。但是 TO_NUMBER 怎么写都不对,一直报无效数字。 求教这里该怎么写
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pobaby 2015-08-30
  • 打赏
  • 举报
回复
很明显是有空值或者字符,看看数据吧,或者用正则
bw555 2015-08-29
  • 打赏
  • 举报
回复
应该还是数据的事,试试使用正则表达式检索不符合数字正则表达式的数据吧
「已注销」 2015-08-29
  • 打赏
  • 举报
回复
数据中可能有非空非数值的值。
mayanzs 2015-08-27
  • 打赏
  • 举报
回复
x.report_amount * replace(y.expense_object_desc,'%')*0.01
mayanzs 2015-08-27
  • 打赏
  • 举报
回复
那就再*0.01就行了
瞌觉兴国 2015-08-27
  • 打赏
  • 举报
回复
引用 1 楼 mayanzs 的回复:
先把%去掉: x.report_amount * replace(y.expense_object_desc,'%')
算出来的数不对啊, 6%是 0.06,这个直接按6算了
mayanzs 2015-08-27
  • 打赏
  • 举报
回复
先把%去掉: x.report_amount * replace(y.expense_object_desc,'%')
内容概要:本文系统研究了虚拟同步发电机(VSG)的惯量-阻尼协同自适应并网控制策略及其稳定性分析,聚焦于提升高比例可再生能源接入背景下电网的频率稳定性。通过Simulink仿真平台与Matlab代码实现,构建了VSG并网系统的动态模型,深入探讨了惯量与阻尼参数的自适应调节机制,以优化系统对频率波动的响应能力。研究涵盖了双机并联VSG的功率精确分配、微电网黑启动过程、虚拟阻抗的引入以及预同步控制等关键技术,并结合根轨迹分析与调节系数对比,验证了所提控制策略在提升系统稳定性和动态性能方面的有效性。文章强调了协同自适应控制在现代电力系统中的关键作用,为微电网和分布式能源系统的稳定运行提供了理论支持和技术方案。; 适合人群:具备电力系统、自动控制或新能源并网等相关专业知识背景,熟悉Matlab/Simulink仿真工具,从事电力电子、微电网控制、可再生能源并网等领域科研或工程应用的研发人员及研究生。; 使用场景及目标:①掌握VSG在微电网及并网系统中的高精度建模与仿真方法;②深入理解惯量-阻尼协同自适应控制对电网频率稳定的优化机制;③应用于微电网黑启动、功率均分控制、虚拟阻抗设计及预同步等实际工程场景的算法开发与性能验证; 阅读建议:建议结合提供的Matlab代码与Simulink模型进行同步仿真操作,重点关注参数自适应调节模块的设计逻辑、根轨迹稳定性分析及不同调节系数下的动态响应对比,以深化对控制策略内在机理的理解与实际应用能力。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧