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