Sélectionnez récursif dans une requête SQL CTE

J'ai une table avec une key unique (UserID et Type)

UserID | Type | Column1 | Column2 ---------------------------- 1 | 1 | *NULL* | 1 1 | 2 | ABC | *NULL* 1 | 3 | *NULL* | 2 2 | 1 | *NULL* | 1 2 | 2 | CDE | *NULL* 3 | 1 | *NULL* | 3 3 | 2 | DTE | *NULL* 

J'essaye de build une requête pour searchr tous les identifiants d'users contient:

 (Type=1 AND Column2=1) AND (Type=3 AND Column2=2) 

Cette question n'a rien à voir avec les CTE récursifs. Vous pouvez le résoudre avec l'agrégation et une clause 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 )