sql 语句查询count时,如果没有就返回0

如selectCOUNT(0)as'count',d_unmeas'userName'fromdmelstwhered_unmein('a@aa.com','ceshih... 如select COUNT(0) as 'count',d_unme as 'userName' from dmelst where d_unme in ('a@aa.com','ceshihao','2102221212@qq.com','')
group by d_unme
在where条件中有三个匹配项,应该返回三个条目,如果表中存在则返回具体数目,不存在则返回0;这里是不存在就什么都没有。该如何修改,谢谢!
展开
 我来答
匿名用户
推荐于2017-11-21
展开全部

关联基础表,没有的话就造一个呗,类似这样

select tmp.d_unme, isnull(stat.count,0)
from (select 'a@aa.com' d_unme union all select 'ceshihao' union all select '2102221212@qq.com') tmp
left join (select COUNT(0) as 'count',d_unme as 'userName' from dmelst where d_unme in ('a@aa.com','ceshihao','2102221212@qq.com','') group by d_unme) stat on tmp.d_unme=stat.userName

不同的数据库,语法不一样,自己改改吧

刘大宝125
2015-10-16 · 超过31用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:22.1万
展开全部
这种情况,一般的不会在SQL上进行处理,一般用程序代码进行判断处理。
如果费非得用SQL,那就考虑一下方式
DECLARE @Database_Name VARCHAR(30), @AA NVARCHAR(10)
, @SELECT_SQL VARCHAR(200), @UPDATE_SQL VARCHAR(200)
SET @Database_Name = 'TEST'
--查询语句
SET @SELECT_SQL = ('SELECT TOP 1 @AA=AA FROM ['+@Database_Name+'].[dbo].[Test]')
--更新语句
SET @UPDATE_SQL = ('UPDATE ['+@Database_Name+'].[dbo].[Test] SET AA = NULL')
--输出参数@AA
exec sp_executesql @SELECT_SQL, N'@AA NVARCHAR(20) out', @AA out
IF @AA IS NOT NULL BEGIN EXECUTE (@UPDATE_SQL) END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式