之前做个需求遇到字符串转数字,遇到点问题和大家分享下。

我想对查询的结果集分组求和,本以为转换下数据类型用聚合函数直接求和就完事了。就像下面这样

SELECTp.id,p.objno,p.objname,
--  bt.projecttypename,bic.ratename,sum(convert(numeric(10,2),bic.ratevalue )),bic.ratevalue
--CAST ( bic.ratevalue AS NUMERIC(10,2) )FROMBiddingproject_approval_budget baLEFT JOIN Biddingproject_typemaster bt ON ba.id = bt.tenderidLEFT JOIN Biddingproject_Interestrate bi ON bi.mastertprojecttypeid = bt.idLEFT JOIN project p ON p.id = bi.ratevalueLEFT JOIN Biddingproject_implementation_costs bic ON bic.mastertprojecttypeid = bt.idLEFT JOIN Biddingproject_typemaster btv ON ba.id = btv.tenderid
WHEREbi.ratename = '项目子编号ID' AND bi.ratevalue <> '' AND bi.ratevalue IS NOT NULL AND btv.projecttypename = '小计' AND bt.projecttypename NOT IN ( '小计', '差额' ) AND bic.ratename <> '8、实施费用' AND ba.id = 'AUAS4IJIUIWLVD3KBOXSLQK9T2NM1148'
GROUP BYp.id,bt.id,bic.ratename,p.objno,bic.ratevalue,p.objname

结果运行转换数据异常。

想着不应该啊,换 cast  函数  依旧报 数据转换异常。

去掉convert 函数,先看下数据,数据结果如下:

原来里面有空字符串,导致无法转换。这时可能有同鞋说用isnull函数 ,然后发现依旧报错。为什么呢?

isnull 函数是对null进行处理的,在这里不起作用。

这里我们要用 case 函数,最终SQL 调整如下

SELECTp.id,p.objno,p.objname,bic.ratename,
sum(case when bic.ratevalue = '' then 0 else CAST ( bic.ratevalue AS NUMERIC(10,2) ) end )
FROMBiddingproject_approval_budget baLEFT JOIN Biddingproject_typemaster bt ON ba.id = bt.tenderidLEFT JOIN Biddingproject_Interestrate bi ON bi.mastertprojecttypeid = bt.idLEFT JOIN project p ON p.id = bi.ratevalueLEFT JOIN Biddingproject_implementation_costs bic ON bic.mastertprojecttypeid = bt.idLEFT JOIN Biddingproject_typemaster btv ON ba.id = btv.tenderid
WHEREbi.ratename = '项目子编号ID' AND bi.ratevalue <> '' AND bi.ratevalue IS NOT NULL AND btv.projecttypename = '小计' AND bt.projecttypename NOT IN ( '小计', '差额' ) AND bic.ratename <> '8、实施费用' AND ba.id = 'AUAS4IJIUIWLVD3KBOXSLQK9T2NM1148'
GROUP BYp.id,bic.ratename,p.objno,p.objname

在这里我们先用case函数把是空的字符串转成 0 ,在这里要注意  case函数 会见数字默认转为 int 类型  这里还需要一点小小的处理。 然后大功告成。结果如下。

SQLserver 字符串转数字问题相关推荐

  1. python字符串拼接数字_python字符串和数值操作函数大全(非常全)

    字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\'的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...

  2. iOS 改变字符串中数字的颜色

    匹配中文字符 [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内) [^\x00-\xff] 匹配网址:[a-zA-z]+://[^\s]* 匹配国内电话 \d{3}-\d{8}|\d{4} ...

  3. SCRIPT1028:缺少标识符、字符串或数字 jquery ajax

    2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符.字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误: 原格式:   多了 ...

  4. pandas使用read_csv读取文件数据、设置converters参数将百分比字符串转换为数字

    pandas使用read_csv读取文件数据.设置converters参数将百分比字符串转换为数字 目录 pandas使用read_csv读取文件数据.设置converters参数将百分比字符串转换为 ...

  5. C/C++中字符串与数字之间的转换

    主要有两种方式:C 中能够使用 sprintf 将数字转为字符数组,sscanf 将字符数组转为数字:而在 C++ 中不仅能够使用 C 中的方法,还能够使用 stringstream 实现字符串与数字 ...

  6. 如何用计算机猜数字,杭电2010计算机复试笔试题 2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;...

    //第一题是猜数字的游戏. //题目:随即产生一个3位的正整数,让你进行猜数字, //如果猜小了,输出:"猜小了,请继续". //如果猜大了,输出:"猜大了,请继续&qu ...

  7. js 判断是不是数字||判断字符串是不是数字(正则表达式)

    js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...

  8. 判断字符串是不是数字

    在网上看到一篇关于判断字符串是数字的函数, 感觉思路不错, 代码简洁, 我转载一下: 代码 public static bool isnum(string xtext) //判断字符串是不是数字    ...

  9. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

最新文章

  1. 以太网控制芯片DM9000在2440裸机上终于能正确接收数据了(源代码工程已经上传)...
  2. 配置浮动路由,实现链路冗余
  3. Vue 踩坑日志 - 有关路由传参的坑
  4. Linux 内核引导选项简介 *********很多常用的受益匪浅
  5. 百度地图示例左侧的代码编辑器Ace Editor
  6. 将字符串型转换为整形
  7. 【笔记】python os的使用 文件批量重命名 批量移动文件 将png转jpg代码
  8. linux封装函数,libc库和封装函数 | 求索阁
  9. 有一只经过训练的蜜蜂……
  10. 计算机数学基础模拟试题,计算机数学基础》模拟考试试题.doc
  11. jquery兄弟标签_js jquery获取当前元素的兄弟级 上一个 下一个元素
  12. 有钱就是任性!阿里20亿美元拿下网易考拉:欢迎加入阿里动物园
  13. python 速成学堂_Python 与数据科学入门
  14. 台达ASDA-A2速度模式调试方法
  15. 30+本MySQL经典书籍
  16. html边界填充边框,CSS边界与填充
  17. 二、es的可视化工具:Kibana及练习
  18. LeetCode--宝石与石头
  19. windows中的SC命令
  20. 项目经理,你有什么优势吗?

热门文章

  1. 统计学中关于自由度的详细解释以及求平均值为什么消耗自由度1
  2. 支付宝挑战银行金融界新科技对传统的冲击
  3. 计算机远程桌面在哪里打开,电脑远程桌面怎么打开,教你电脑远程桌面怎么打开...
  4. Centos7配置yum源(本地yum源和阿里网络yum源)
  5. 使用UItraISO刻录系统
  6. android 微信创建群ui,Android控件:高仿微信主UI
  7. 移动电子政务网站群发展与创新
  8. JS 小数取整的几种方式
  9. 1065 单身狗(输出数字前添0)
  10. dmp格式怎么转换_图片的格式怎么改