Sql server 在CTE SQL查询中选择recursive
我有一个具有唯一键(UserID和Type)的表 我正在尝试构建一个查询,用于搜索所有用户ID,其中包含:Sql server 在CTE SQL查询中选择recursive,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个具有唯一键(UserID和Type)的表 我正在尝试构建一个查询,用于搜索所有用户ID,其中包含: (Type=1 AND Column2=1) AND (Type=3 AND Column2=2) 这个问题与递归CTE无关。您可以使用聚合和having子句来解决此问题: select userid from t where (Type = 1 AND Column2 = 1) OR (Type = 3 AND Column2 = 2) group by userid having
(Type=1 AND Column2=1) AND (Type=3 AND Column2=2)
这个问题与递归CTE无关。您可以使用聚合和
having
子句来解决此问题:
select userid
from t
where (Type = 1 AND Column2 = 1) OR (Type = 3 AND Column2 = 2)
group by userid
having count(distinct type) = 2;
请编辑您的问题并添加您要查找的结果。而且,您的问题与递归CTE无关。结果必须是UserID1@Paparazzi . . . 当我读取数据时,UserId 1确实满足条件。@JibinBalachandran UserId 2没有Type=3,因此它不会被返回。@JibinBalachandran是的,有多条记录满足
条件,其中或,但是只有记录同时满足这两个条件的userid才能满足HAVING
标准。您能帮助我解决分页的行号()问题吗?如果您还有其他问题,请将其作为另一个问题而不是在注释中提问。
select userid
from t
where (Type = 1 AND Column2 = 1) OR (Type = 3 AND Column2 = 2)
group by userid
having count(distinct type) = 2;
With CTE(userid)
AS
(
SELECT userid
FROM t
WHERE (Type = 1 AND Column2 = 1)
)
SELECT userid
FROM CTE
WHERE EXISTS(
SELECT 1
FROM CTE
WHERE Type = 3 AND Column2 = 2 )