tsql - TSQL 太奇怪了,除法在选择中不起作用(但 * - + 工作正常),但仅适用于一列
问题描述
我有一个奇怪的问题:
select ****
COALESCE(Customers / (NULLIF(Visitors,0)),0) AS CR
对于 3/3 返回 1 对于 157/2 返回 0 或任何其他非 1 将返回 0。
CR 是十进制(8,2),对于所有其他列,同一行正在工作(不同列的混合)
我已经尝试过 + - *,一切正常,但是一旦我使用除法,它就不会返回一个值,除非是一个。
到底是怎么回事 ???为什么除法不起作用,而所有其他算术函数都可以正常工作。看起来它不会返回小数...
解决方案
无法复制您的结果,但也许这将有助于澄清。
例子
Declare @T table (Customers int,Visitors int)
Insert Into @T values
(2,157),
(5,14),
(2,0),
(null,25),
(15,null)
select CR = IsNull((Customers+0.0) / nullif(Visitors,0),0)
From @T
退货
CR
0.012738853503
0.357142857142
0.000000000000
0.000000000000
0.000000000000
推荐阅读
- c# - 添加引用后无法引用项目
- python - Django在html点击上运行外部py脚本
- mysql - 如何消除查询中的某些值
- node.js - 如何根据用户表单输入查询api
- mysql - 查找 2019 年支出比 2018 年至少增加 10% 的客户
- java - 使用 try/catch 块在 Java 中运行方法时,在调试模式下找不到源错误
- java - 如何将 XDDF 图表添加到特定段落运行(即表格中的单元格)?兴趣点 4.0.1
- html - 如何使 flexbox 嵌套列在嵌套 flex 容器内独立垂直滚动
- botframework - 有没有办法为 Microsoft bot 框架对话对话框使用存储而不是直接服务存储来存储对话历史
- javascript - 如何在 ASP.NET MVC 中使用 JQUERY 将项目列表添加到表中?