SQL查看表中的两个或多个列是否大于0

Bar*_* D. 5 sql sql-server select

我遇到了一个小问题,并希望得到任何帮助.

我的表是这样的:

CASH | CREDIT CARD | DEBIT CARD | ACCOUNT | OTHER
-------------------------------------------------
0.00   0.00          0.00         0.00      0.00

1.00   0.00          0.00         0.00      0.00

2.00   1.00          0.00         0.00      0.00
Run Code Online (Sandbox Code Playgroud)

我的目标是SELECT * FROM具有多个列> 0的上述任何行.

因此,在此方案中将使用上表选择第三行.

t-c*_*.dk 10

SELECT 
  [CASH], [CREDIT CARD], [DEBIT CARD], [ACCOUNT], [OTHER]
FROM table
WHERE
  CASE WHEN [CASH] > 0 THEN 1 ELSE 0 END+
  CASE WHEN [CREDIT CARD] > 0 THEN 1 ELSE 0 END+
  CASE WHEN [DEBIT CARD] > 0 THEN 1 ELSE 0 END+
  CASE WHEN [ACCOUNT] > 0 THEN 1 ELSE 0 END+
  CASE WHEN [OTHER] > 0 THEN 1 ELSE 0 END >= 2
Run Code Online (Sandbox Code Playgroud)