select sans sql (applique externe)

En Sql, vous pouvez faire quelque chose comme ça ci-dessous

select 1, 2, 3 

C'est l'instruction select sans utiliser 'from'. Je viens de chercher comment utiliser externe appliquer récemment.

Normalement vous ferez l'application externe comme ceci:

  SELECT * FROM Department D OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) A 

Je me request s'il existe un moyen de le faire sans utiliser la déclaration de comme je l'ai mentionné ci-dessus?

 For example: Select 1, 2, OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) E OUTER APPLY ( SELECT * FROM Employee_Service serv WHERE E.DepartmentID = serv.DepartmentID ) S 

Cela pourrait être proche de ce que vous cherchez:

  SELECT * FROM ( Select 1 AS DepartmentID UNION ALL SELECT 2 ) AS D OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) E OUTER APPLY ( SELECT * FROM Employee_Service serv WHERE E.DepartmentID = serv.DepartmentID ) S 

ou, en utilisant VALUES :

  SELECT * FROM ( VALUES (1), (2) ) AS D(DepartmentID) OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) E OUTER APPLY ( SELECT * FROM Employee_Service serv WHERE E.DepartmentID = serv.DepartmentID ) S 

Si vous voulez une seule colonne avec plusieurs lignes, alors

Essaye ça

 SELECT * FROM (Select 1 UNION ALL SELECT 2) AS D(DepartmentID) OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) E OUTER APPLY ( SELECT * FROM Employee_Service serv WHERE E.DepartmentID = serv.DepartmentID ) S 

Si vous voulez une seule ligne avec plusieurs colonnes, alors

Essaye ça

 SELECT * FROM (Select 1 DepartmentID,2 DepartmentName,..) AS D OUTER APPLY ( SELECT * FROM Employee E WHERE E.DepartmentID = D.DepartmentID ) E OUTER APPLY ( SELECT * FROM Employee_Service serv WHERE E.DepartmentID = serv.DepartmentID ) S