sql - 如何克服以下查询中除以零的错误
问题描述
请在下面找到一个表结构
table A Table B
10 10
20 10
30 0
40 0
我想划分A/B。如果有 30/0 我想将其显示为 0。
我想像这样输出
O/P
1
2
0
0
我们怎样才能做到这一点?
Table structure queries:
create table #test1(id int)
insert into #test1 values(10)
insert into #test1 values(20)
insert into #test1 values(30)
insert into #test1 values(40)
select top 100 * from #test1
create table #test2(id int)
insert into #test2 values(10)
insert into #test2 values(10)
insert into #test2 values(0)
insert into #test2 values(0)
select top 100 * from #test2
解决方案
试试这个
SELECT A.id,B.id, IIF(B.id<>0,A.Id/B.ID,0) AS ExpectedResult,
COALESCE( A.id/NULLIF(B.ID,0),0) AS ExpectedResult2
FROM
(
SELECT Id,ROW_NUMBER()OVER(Order BY ID) As Seq FROM #test1
)As A
INNER JOIN
(
SELECT Id,ROW_NUMBER()OVER(Order BY ID DESC) As Seq FROM #test2)AS B
ON A.Seq=B.Seq
结果
id id ExpectedResult ExpectedResult2
10 10 1 1
20 10 2 2
30 0 0 0
40 0 0 0
推荐阅读
- click - 防止使用 .unbind 和 setTimeOut 堆叠点击,在移动设备上不起作用
- php - 文件上传到目的地但名称未保存在 codeigniter 的数据库中
- scala - Maven JAR 文件只包含 HTML 文件,不包含 Scala 类
- php - MySQL 登录 PHP 带条件
- javascript - issues with fully collapsible div
- python - 通过出租车服务器(奖章)将数据发布到 MongoDB 的问题
- c# - 在 Unity 中从一个脚本调用另一个脚本时出错
- html - How to remove extra space in bottom? I have explained in below
- bots - 限制用户在 Skype 机器人中输入文本并强制从卡选项中进行选择
- html - 我无法运行 npm run script 它显示了许多错误