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语句)
展开
展开全部
先用一条子查询把空值格式化成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
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是自己写的一个函数吗?系统提示不存在这个方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用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 -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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询