首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >case语句中的计数SQL

case语句中的计数SQL
EN

Stack Overflow用户
提问于 2016-08-01 17:32:49
回答 3查看 8.8K关注 0票数 0

我在我的sql程序中有以下查询

代码语言:javascript
运行
复制
SELECT
    m.managerid,
    CASE
        WHEN (ISNULL(COUNT(t.employeeid), 0) = 0) THEN 'No Manager'
        ELSE COUNT(m.managerid)
    END
FROM employee t
LEFT JOIN employenrol m
    ON t.employeeid = m.employeeid
GROUP BY t.employeeid

if count(t.employeeid)= 0,我需要显示,没有管理器,,否则,实际计数。

将varchar值“No Manager”转换为数据类型int时,转换失败。警告: Null值由聚合操作或其他设置操作消除。

怎么解决这个问题?

EN

Stack Overflow用户

发布于 2016-08-01 17:47:12

我想这就是你想要做的..。

代码语言:javascript
运行
复制
SELECT  t.employeeid,
        CASE WHEN COUNT(m.managerid) = 0 THEN 'No Manager'
             ELSE CAST(COUNT(m.managerid) AS VARCHAR(10))
        END
FROM    employee t
        LEFT JOIN employenrol m ON t.employeeid = m.employeeid
GROUP BY t.employeeid

不确定为什么要选择m.managerid和计数t.employeeid,这会导致错误,因为您只按t.employeeid分组

这可能会对你更有帮助

代码语言:javascript
运行
复制
SELECT  t.employeeid,
        CASE WHEN m.managercount = '0' THEN 'No Manager'
             ELSE m.managercount
        END
FROM    @employee t
        OUTER APPLY (SELECT CAST(COUNT(managerid) AS VARCHAR(10)) managercount
                     FROM   @employenrol m
                     WHERE  t.employeeid = m.employeeid
                    ) m
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38704855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档