Cli*_*nch 1 t-sql sql-server view count sql-server-2008-r2
我有以下数据:
ID Column1 Column2 Column3 Column4 Column5
001 A C D A B
002 A D A B A
003 B K Q C Q
004 A K E E B
Run Code Online (Sandbox Code Playgroud)
我想在视图中创建一个新列,该列给出每行 5 个源列中“A”的计数。结果应该是这样的:
ID Column1 Column2 Column3 Column4 Column5 SumOfA
001 A C D A B 2
002 A D A B A 3
003 B K Q C Q 0
004 A K E E B 1
Run Code Online (Sandbox Code Playgroud)
我在这里看到了几个示例,但它们返回跨记录的“A”实例 - 我想要跨列的“A”计数,而不是跨行聚合。有什么想法吗?
您可以使用多个CASE
表达式来计算A
值:
select id,
column1,
column2,
column3,
column4,
column5,
case when column1 = 'A' then 1 else 0 end +
case when column2 = 'A' then 1 else 0 end +
case when column3 = 'A' then 1 else 0 end +
case when column4 = 'A' then 1 else 0 end +
case when column5 = 'A' then 1 else 0 end TotalA
from yourtable
Run Code Online (Sandbox Code Playgroud)