首页 > 解决方案 > SQL根据条件创建修改记录

问题描述

我有下表:

id     activity     xuser     isDone
---------------------------------------
1      abc          tom       y
2      def          tom       n
3      hij          jeff      y
4      klm          jeff      n
5      nop          jeff      n

我想得到以下结果:

nCol     tom      jeff
----------------------------
done     1        1
undone   1        2

我怎样才能在 SQL 语法中做到这一点?那我怎样才能把它转换成 linq 语法呢?
谢谢你。

标签: sqllinq.net-core

解决方案


返回列(xuser、donecount、undonecount)要灵活得多。

做一个GROUP BY,使用case 表达式条件聚合

select xuser,
       sum(case when isDone = 'y' then 1 else 0 end) as donecount,
       sum(case when isDone = 'n' then 1 else 0 end) as undonecount
from tablename
group by xuser

(其他人必须进行 linq 编码。)


推荐阅读