Ess*_*ans 6 sql sql-server conditional sum
我在MSSQL中有这个表:
ID OP1 OP2 OP3
330 0 0 1
331 1 0 0
332 3 2 0
Run Code Online (Sandbox Code Playgroud)
OP是可选的.可以从1到9,0意味着问题没有答案.
如何在"已回答"列中"汇总",如下所示:
ID OP1 OP2 OP3 T
330 0 0 1 1
331 1 0 0 1
332 3 2 0 2
Run Code Online (Sandbox Code Playgroud)
值大于0表示已回答.
我尝试使用CASE WHEN,IF语句.
用途CASE:
SELECT Id, OP1, OP2, OP3,
(CASE WHEN OP1 > 0 THEN 1 ELSE 0 END +
CASE WHEN OP2 > 0 THEN 1 ELSE 0 END +
CASE WHEN Op3 > 0 THEN 1 ELSE 0 END) AS T
FROM MyTable
Run Code Online (Sandbox Code Playgroud)