sql 语句查出的数据为空,怎么用个if语句判断,然后作出处理。

select sum(price),userName
from food join diningcar on food.foodId=diningcar.foodId
join users on diningcar.userId=users.userId
where (comment=0 or comment=-1) and userName='zq'
group by userName
这条语句是查价格的总和,查出来的数据为空(这条语句是正确的,数据库里没有这个语句要查的相关信息)。我想做个判断。判断查出来的数据是否为空,如果为空,就给sum(price)赋值,使sum(price)=0.要保证数据库不发生改变,只是显示结果有变化。这能不能实现啊,大虾们帮帮忙

第1个回答  2011-11-10
oracle:改为
select nvl(sum(price),0),userName
from food join diningcar on food.foodId=diningcar.foodId
join users on diningcar.userId=users.userId
where (comment=0 or comment=-1) and userName='zq'
group by userName
sqlserver改为
select isnull(sum(price),0),userName
from food join diningcar on food.foodId=diningcar.foodId
join users on diningcar.userId=users.userId
where (comment=0 or comment=-1) and userName='zq'
group by userName
第2个回答  推荐于2018-06-17
可以实现,以sql server为例看:
if not exists(select userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq' group by userName)
select 0,'zq'
else
select sum(price),userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq' group by userName

方法二:
select isnull(sum(price),0),userName
from food join diningcar on food.foodId=diningcar.foodId
join users on diningcar.userId=users.userId
where (comment=0 or comment=-1) and userName='zq'
group by userName

不知道是不是你想要的结果,但是我有个疑问,你为什么不在程序里进行判断,而是要让sql语句判断呢?本回答被提问者和网友采纳

sql 语句查出的数据为空,怎么用个if语句判断,然后作出处理。
select nvl(sum(price),0),userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq'group by userName sqlserver改为 select isnull(sum(price),0),userName from food join dini...

sql语句查出的数据为空,怎么用个if语句判断,然后作出处理?
可以实现,以sql server为例看:if not exists(select userName from food join diningcar on food.foodId=diningcar.foodId join users on diningcar.userId=users.userId where (comment=0 or comment=-1) and userName='zq' group by userName)select 0,'zq'else select sum(price),userName...

怎么使用SQL 2014求大神请教?
在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是...

如何使用assert
ASSERT ()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。ASSERT只有在Debug...

试解释 SQL 注入攻击的原理,以及对数据库可能产生的不利影响。
首先看看它的含义:首先,前面的语句是正常的,重点在and user>0,我们知道,user是SQL Server的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQL Server的出错提示是:将nvarchar值 ”abc” 转换数据...

SQL里面的排序语句desc和ASC有什么区别
SQL 语句中, asc是指定列按升序排列,desc则是指定列按降序排列。排序子句语法:order by 列名 asc\/desc 例表格:tt 1、按列n2的升序排列 select * from tt order by n2 asc;2、按列n2的降序排列 select * from tt order by n2 desc;3、复合排序,先按列n1升序排列,再按n2降序排列 select ...

关于全国奥林匹克计算机竞赛初中级
4.1 IF语句 条件语句用于响应一个条件的两个方面。 例如:今天如果下雨,我们就在家;否则(不下雨)我们就去旅游。 又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。 IF语句的一般格式是: IF 条件 THEN 语句1{条件为真时的响应、处理} ELSE 语句2;{条件为假时的响应、处理} 使用条件...

哪位专家能否推荐给我学习sql语言最基本的资料。
随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现) 对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:Randomize RNumber = Int(Rnd*499) +1 While Not objRec.EOF If objRec("...

请问作为一个java的程序员要具备哪些技术?
java方面编程的初级学员必需掌握的基础知识:java语言、HTML、JSP以及至少一种数据库。这是最低的标准,但是也是最高的要求,因为基本上其他相关的技术和架构都是基于这些以上的。总之,我觉得都是一通百通,基本上做一个项目就能熟练掌握一种技术。至于企业方面:本人先后在国内几个大的软件公司工作过,...

相似回答