在没有临时表的情况下重写此查询
Re-write this query without temp tables
现在正在学习 SQL,不是特别大的临时 table,因为每次 运行 您的查询都必须放弃。基本上下面的这个查询从 patientinfo table 中提取信息并放入一个临时文件 table,然后可以用来可能与另一个 table 连接来修改这个查询,所以我不需要使用临时 tables?就像我的意思是无论如何从 table 中提取信息而不需要临时 table,就像我注释掉的那部分(进入)
SELECT PatientCode [Code]
, PatientID [Pltid]
, CASE WHEN PatientStatus = 'R' THEN 'lefthospital'
WHEN PatientStatus = 'I' THEN 'StillIn'
ELSE 'unknown' END [CDStatus]
INTO #PatientInfoPull
FROM PatientInfo
SELECT PatientInfo.*
FROM #initCDPull
this query below pulls info from patientinfo table and put into a temp table, then can be used to possibly join with another table
好的,你正在做这样的事情:
SELECT <fields>
INTO #SomeTemp
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
SELECT *
FROM SomeOtherReal r
JOIN #SomeTemp t ON r.SomeOtherColumn = t.SomeOtherColumn
在这种情况下,您可以像这样使用子查询(正式名称:“Derived Table”):
SELECT *
FROM SomeOtherReal r
JOIN (
SELECT <fields>
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
) t ON r.SomeOtherColumn = t.SomeOtherColumn
或像这样的通用 Table 表达式 (CTE):
WITH t AS (
SELECT <fields>
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
)
SELECT *
FROM SomeOtherReal r
JOIN t ON r.SomeOtherColumn = t.SomeOtherColumn
不仅如此,您通常还可以像这样组合这些步骤:
SELECT t.<fields>, r.<fields>
FROM SomeOtherReal r
JOIN SomeReal t ON t.SomeOtherColumn = r.SomeOtherColumn
WHERE t.SomeColumn = 'SomeValue'
现在正在学习 SQL,不是特别大的临时 table,因为每次 运行 您的查询都必须放弃。基本上下面的这个查询从 patientinfo table 中提取信息并放入一个临时文件 table,然后可以用来可能与另一个 table 连接来修改这个查询,所以我不需要使用临时 tables?就像我的意思是无论如何从 table 中提取信息而不需要临时 table,就像我注释掉的那部分(进入)
SELECT PatientCode [Code]
, PatientID [Pltid]
, CASE WHEN PatientStatus = 'R' THEN 'lefthospital'
WHEN PatientStatus = 'I' THEN 'StillIn'
ELSE 'unknown' END [CDStatus]
INTO #PatientInfoPull
FROM PatientInfo
SELECT PatientInfo.*
FROM #initCDPull
this query below pulls info from patientinfo table and put into a temp table, then can be used to possibly join with another table
好的,你正在做这样的事情:
SELECT <fields>
INTO #SomeTemp
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
SELECT *
FROM SomeOtherReal r
JOIN #SomeTemp t ON r.SomeOtherColumn = t.SomeOtherColumn
在这种情况下,您可以像这样使用子查询(正式名称:“Derived Table”):
SELECT *
FROM SomeOtherReal r
JOIN (
SELECT <fields>
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
) t ON r.SomeOtherColumn = t.SomeOtherColumn
或像这样的通用 Table 表达式 (CTE):
WITH t AS (
SELECT <fields>
FROM SomeReal
WHERE SomeColumn = 'SomeValue'
)
SELECT *
FROM SomeOtherReal r
JOIN t ON r.SomeOtherColumn = t.SomeOtherColumn
不仅如此,您通常还可以像这样组合这些步骤:
SELECT t.<fields>, r.<fields>
FROM SomeOtherReal r
JOIN SomeReal t ON t.SomeOtherColumn = r.SomeOtherColumn
WHERE t.SomeColumn = 'SomeValue'