有没有办法在单选查询
中编写下面的SQL查询SET @T1 = COUNT(1) FROM @TableVar
SET @T2 = COUNT(1) FROM @TableVar WHERE bit1 = 1 AND bit2 = 0
SET @T3 = COUNT(1) FROM @TableVar WHERE bit1 = 0 AND bit2 = 1
SELECT @T1 AS Col1,
@T2 AS Col2,
@T3 AS Col3
答案 0 :(得分:4)
SELECT T1 = COUNT(1),
T2 = COUNT(CASE WHEN bit1 = 1 AND bit2 = 0 THEN 1 END),
T3 = COUNT(CASE WHEN bit1 = 0 AND bit2 = 1 THEN 1 END)
FROM @TableVar
答案 1 :(得分:1)
尝试:
MS SQL Server 2008架构设置:
查询1 :
DECLARE @TableVar TABLE
(bit1 bit, bit2 bit)
INSERT INTO @TableVar Values(0,0)
INSERT INTO @TableVar Values(1,1)
INSERT INTO @TableVar Values(1,0)
INSERT INTO @TableVar Values(1,0)
INSERT INTO @TableVar Values(0,1)
SELECT COUNT(1) AS Col1,
SUM(CASE WHEN bit1=1 and bit2=0 THEN 1 ELSE 0 END) AS Col2,
SUM(CASE WHEN bit1=0 AND bit2=1 THEN 1 ELSE 0 END) AS Col3
FROM @TableVar
<强> Results 强>:
| Col1 | Col2 | Col3 |
|------|------|------|
| 5 | 2 | 1 |
答案 2 :(得分:0)
这就是我要做的:
select count(*),
(select count(*) from @TableVar WHERE bit1 = 1 AND bit2 = 0) as col2,
(select count(*) from @TableVar WHERE bit1 = 0 AND bit2 = 1) as col3 from @TableVar