我有一个连接3,4个表的查询(比如select * from table1 join table2 join table3),同一个查询在我的存储过程中被多次使用。有没有办法把这个查询放在一个地方,并且我可以在我的整个存储过程中使用它(在单个存储过程中)?
SELECT p.PK_PatientID
FROM Patients p
INNER JOIN PT ON e.FK_PatientID = p.PK_PatientID
INNER JOIN PN n ON n.FK_PatientEncounterID = e.PK_PatientEncounterID
INNER JOIN BP ep ON ep.FK_PatientEncounterID = e.PK_PatientEncounterID
INNER JOIN SOP pd ON ep.FK_SharedProcedureDetailID = pd.PK_SharedOfficeProcedureDetailID
INNER JOIN CQM vs ON pd.FK_SharedProcedureCode = vs.Code这是我想在我的过程中多次使用的查询
发布于 2017-04-05 20:53:50
如果多次使用查询,则可以使用Temp table或Table变量并向其中插入数据
如果由于未知原因不想使用临时表或表变量,则可以使用视图
发布于 2017-04-21 21:34:53
您可以将select查询存储在视图中:
CREATE VIEW vW_Example
AS
SELECT p.PK_PatientID
FROM Patients p
INNER JOIN PT ON e.FK_PatientID = p.PK_PatientID
INNER JOIN PN n ON n.FK_PatientEncounterID = e.PK_PatientEncounterID
INNER JOIN BP ep ON ep.FK_PatientEncounterID = e.PK_PatientEncounterID
INNER JOIN SOP pd ON ep.FK_SharedProcedureDetailID = pd.PK_SharedOfficeProcedureDetailID
INNER JOIN CQM vs ON pd.FK_SharedProcedureCode = vs.Code然后,您可以像这样调用视图:
SELECT * FROM vW_Examplehttps://stackoverflow.com/questions/43230234
复制相似问题