Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在CTE SQL查询中选择recursive_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 在CTE SQL查询中选择recursive

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

我有一个具有唯一键(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 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 )