基本上,当2列中存在值时,我希望COUNT为CASE。
例如:
SELECT
COUNT
(CASE WHEN 1.sample AND 2.sample IN ('a','b','c')
THEN 1
ELSE NULL
END
) AS CASE
FROM table1 AS 1
INNER JOIN table2 AS 2
...
消息:
将varchar值'08:12.06'转换为数据时转换失败 输入int。警告:聚合或其他消除了空值 SET操作。
我得到了触发错误的内容,我只是不知道在两列中都存在值时计算情况的解决方案。
答案 0 :(得分:1)
您需要单独列出列以进行比较。通常我指定要计数的列,并且您不需要为else条件设置NULL。
SELECT
COUNT
(CASE WHEN 1.sample IS NULL OR 2.sample IS NULL THEN 0
WHEN ( 1.sample IN ('a','b','c')
AND 2.sample IN ('a','b','c')
)
THEN 1.sample
END
) AS CASE
FROM table1 AS 1
INNER JOIN table2 AS 2 ON....
答案 1 :(得分:1)
你可以尝试一下,看看它是否有效吗?我认为这就是你要找的东西。
SELECT
SUM
(CASE WHEN 1.sample IN ('a','b','c') AND 2.sample IN ('a','b','c')
THEN 1
ELSE 0
END
) AS CASE
FROM table1 AS 1
INNER JOIN table2 AS 2