【问题标题】:SQL Select Into #TempSQL 选择进入#Temp
【发布时间】:2014-11-03 17:58:37
【问题描述】:

我有一个有效的复杂 SQL 查询。好像

    SELECT * FROM Site s
    JOIN (
        SELECT DISTINCT z.Value FROM Doc z
        JOIN (
            SELECT x.DocumentID FROM Doc x
            JOIN (
                SELECT DocumentID, MAX(VERSION) AS VERSION 
                FROM Doc GROUP BY DocumentID) y ON y.DocumentID = x.DocumentID
            WHERE DocumentTypeID = 78 AND MetadataTypeID = 22 AND VALUE > GETDATE() AND y.Version = x.Version
            ) a ON z.DocumentID = a.DocumentID
        WHERE MetadataTypeID = 2
    ) b ON b.Value = s.SiteID
    WHERE SiteID > 0

它做我想做的事。但是当我把它包装在

SELECT * INTO #Temp FROM ()

我在 ')' 附近得到一个不正确的语法。

我很困惑。我只是想把结果放到一个临时表中,这样我就可以做进一步的工作了。为什么它不起作用?

【问题讨论】:

  • 使用别名SELECT * INTO #Temp FROM () AS A
  • 试试SELECT * INTO #Temp FROM () AS a
  • 不错。感谢你们的快速回答。

标签: sql sql-server temp


【解决方案1】:

您缺少子查询的别名。

SELECT * INTO #MyTempTable
FROM
(
SELECT * FROM Site s
    JOIN (
        SELECT DISTINCT z.Value FROM Doc z
        JOIN (
            SELECT x.DocumentID FROM Doc x
            JOIN (
                SELECT DocumentID, MAX(VERSION) AS VERSION 
                FROM Doc GROUP BY DocumentID) y ON y.DocumentID = x.DocumentID
            WHERE DocumentTypeID = 78 AND MetadataTypeID = 22 AND VALUE > GETDATE() AND y.Version = x.Version
            ) a ON z.DocumentID = a.DocumentID
        WHERE MetadataTypeID = 2
    ) b ON b.Value = s.SiteID
    WHERE SiteID > 0
) AS DT

【讨论】:

    【解决方案2】:
    select * into TBL_name from
    ( SELECT * FROM Site s
        JOIN (
            SELECT DISTINCT z.Value FROM Doc z
            JOIN (
                SELECT x.DocumentID FROM Doc x
                JOIN (
                    SELECT DocumentID, MAX(VERSION) AS VERSION 
                    FROM Doc GROUP BY DocumentID) y ON y.DocumentID = x.DocumentID
                WHERE DocumentTypeID = 78 AND MetadataTypeID = 22 AND VALUE > GETDATE() AND y.Version = x.Version
                ) a ON z.DocumentID = a.DocumentID
            WHERE MetadataTypeID = 2
        ) b ON b.Value = s.SiteID
        WHERE SiteID > 0)al
    

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多