我们可以制作中间表来简化查询

时间:2013-05-29 16:54:48

标签: sql sql-server tsql

通过以下查询,我正在创建一个新表。

select * from TableA, tableB, (another query to make new table)TableC
where condition

这使我的查询看起来很长很糟糕。我不知道是否有办法让临时表稍后查询。

例如基于以上查询:

tableC = another query to make new table
select * from tableA, tableB, tableC
where condition

3 个答案:

答案 0 :(得分:3)

CTE是一种方法

With TableC as 
( SELECT ....
)
SELECT * from tableA, tableB, tableC
WHERE condition

答案 1 :(得分:1)

您有两种选择:

  • 使用view这是最简单的情况,
  • 使用Indexed View更难一点,并且有利有弊。

答案 2 :(得分:1)

如果是我,我会使用临时表来进行查询。

你可以做这样的事情;

SELECT TA.*, TB.*
INTO #TempTable
FROM TableA AS TA INNER JOIN TableB AS TB ON TA.ID = TB.ID
WHERE ......

然后您可以将此表的详细信息用于任何目的;

SELECT *
FROM #TempTable

请记住,最后DROP是最好的做法。

DROP TABLE #TempTable

SQL Fiddle