我的表中有两个布尔类型的列。我想根据以下条件对这两列进行选择:每列:
- 如果至少有一行=1,我将@result=1
- 如果没有行=1,我将@result=0
CREATE TABLE test ( active1 bit, active2 bit, ) INSERT INTO test(active1 , active2 ) VALUES (0,0), (1;0), (0.0);
它必须返回@result1=1和@result2=0,我想在一个查询中完成此操作,我尝试了MAX,但它不起作用:
declare @result1 bit
declare @result1 bit
select
@result1= max(active1), @result2= max(active2)
from test
请帮助
不能对bit
列执行聚合,需要将它们强制转换为合适的数据类型
declare @result1 bit, @result2 bit;
with t as (
select Convert(tinyint, active1) active1, Convert(tinyint, active2) active2
from test
)
select @result1=max(active1), @result2= max(active2)
from t;
select @result1 Result1, @result2 Result2;
(还要注意,位列是而不是布尔值(