我可以自己加入“虚拟”表(某些表的联合结果)吗?
SELECT
[VIRTUAL_TABLE].[Name] AS [name],
[VIRTUAL_TABLE].[ID] AS [id]
FROM (
SELECT
...
FROM [...]
UNION
SELECT
...
FROM [...]
) AS [VIRTUAL_TABLE]
-- INNER JOIN [VIRTUAL_TABLE] ON ... ???
我正在使用SQL Server。
感谢名单!
答案 0 :(得分:2)
是的,您可以使用公用表表达式(CTE)执行此操作:
with virtualTable as(
SELECT
...
FROM [...]
UNION
SELECT
...
FROM [...]
)
select vt1.field,
vt2.field
from virtualTable vt1 join virtualTable vt2 on vt1.someField = vt2.otherField
答案 1 :(得分:0)
如果您想以经典方式编写它,则必须复制TSQL代码。但是,您可以使用CTE。
也许该代码可以解决您的问题:
SELECT VIRTUAL_TABLE_1.*
FROM (SELECT 'James' NAME, '12' ID) AS VIRTUAL_TABLE_1,
(SELECT 'James' NAME, '12' ID) AS VIRTUAL_TABLE_2
WHERE VIRTUAL_TABLE_1.ID = VIRTUAL_TABLE_2.ID