在表格或JOIN
的某些结果中,存在2行具有相同Email
但具有不同的其他值。
示例:
Email -/- Operation1 (BIT) -/- Operation2 (BIT)
test@email.com -/- 1 -/- 0
test@email.com -/- 0 -/- 1
如何按Email
对行进行分组,并按下一格式选择它们(根据样本)
Email -/- Operation1 (BIT) -/- Operation2 (BIT)
test@email.com -/- 1 -/- 1
如果Operation1在一行中为TRUE
,则在结果中返回TRUE
答案 0 :(得分:0)
如您的位字段表中所述,以下查询将在SQL SERVER 2008中起作用
CREATE TABLE #temp
(
email VARCHAR(30),
Operation1 BIT,
Operation2 BIT
)
INSERT INTO #temp VALUES('test@email.com',1,0)
INSERT INTO #temp VALUES('test@email.com',0,1)
-- METHOD 1
SELECT email,
MAX(CASE WHEN Operation1 = 1 THEN 1 ELSE 0 END) AS Operation1,
MAX(CASE WHEN Operation2 = 1 THEN 1 ELSE 0 END) AS Operation2
FROM #temp GROUP BY email
-- METHOD 2
SELECT email,MAX(CONVERT(INT,Operation1)) AS Operation1,
MAX(CONVERT(INT,Operation2)) AS Operation2
FROM #temp GROUP BY email
--DROP TABLE #TEMP