SQL Server中的条件求和

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语句.

JNK*_*JNK 7

用途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)