我正在尝试找到应用以下逻辑的最佳方法。我们的业务逻辑要求我将一堆行插入到 var 表中,然后选择所有不同的记录,但只有当它匹配具有相同 id 的所有记录时才将条件设置为肯定 [所以基本上按位与]
希望我的例子能更好地解释这一点。
DECLARE @sometable TABLE (
record_id INT NOT NULL,
some_condition BIT NOT NULL)
该表中的记录将匹配
record_id some_condition
1 1
1 0
2 0
3 0
在上述情况下,所需的输出应该是
record_id some_condition
1 0
2 0
3 0
直到现在我一直这样做是这样的
SELECT DISTINCT record_id CAST(MIN(CAST(some_condition INT)) AS some_condition
FROM @sometable
GROUP BY record_id
有一个更好的方法吗?我不得不 CAST var 因为 MIN 只接受数字类型。