sql语句 联合查询,需要将两个表中两个字段做减法,若其中一个字段为

sql语句联合查询,需要将两个表中两个字段做减法,若其中一个字段为空值,则设为0,比如selecta.idfromtable1aleftjointable2bona.id... sql语句 联合查询,需要将两个表中两个字段做减法,若其中一个字段为空值,则设为0,比如select a.id from table1 a left join table2 b on a.id=b.id where (a.price -b.price) >10,这条语句中,为了防止table2中的price字段是空值,应该怎么写sql语句(最好不要分开写,就要一条sql语句) 展开
 我来答
百度网友82c535c
推荐于2018-03-02 · TA获得超过595个赞
知道小有建树答主
回答量:521
采纳率:0%
帮助的人:447万
展开全部
先用一条子查询把空值格式化成0,然后再用连接查询

select a.id from (select
case when price is null
then 0
else price
end from table1) a left join(
select
case when price is null
then 0
else price
end from table2
) b on a.id=b.id where (a.price -b.price) >10
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-06-08
展开全部
select a.id from table1 a left join table2 b on a.id=b.id where (a.price -nvl(b.price,0)) >10

加个NVL判断一下,如果为空,则视为0即可

追问
请问nvl是自己写的一个函数吗?系统提示不存在这个方法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
9988living
2018-01-04
知道答主
回答量:3
采纳率:0%
帮助的人:3138
引用j1x2h32046的回答:
select a.id from table1 a left join table2 b on a.id=b.id where (a.price -nvl(b.price,0)) >10加个NVL判断一下,如果为空,则视为0即可
展开全部
select a.id from table1 a left join table2 b on a.id=b.id where (a.price -null(b.price,0)) >10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式