0
我有一個sql存儲過程,其中我使用的遊標包含一組來自select語句的id的遊標,我使用這些id逐個使用遊標將值轉換爲其他變量並使用這些變量做sql連接。我的問題是,當我執行這個我得到很多表返回,而我只需要一個表返回。SQL遊標返回許多表
SET NOCOUNT ON
declare @BSVal as int
declare @GSVal as int
declare @mID as int
declare @qID as int
DECLARE M_Cursor cursor for
select
ms.MID,ms.QID
from vM As ms join QS as qs
ON ms.QSID=qs.QIDjoin
Mar as mar on mar.MarID=qs.MarID
where (ms.Cid='Web')
open M_Cursor
FETCH NEXT FROM M_Cursor
INTO @mID, @qID
--Get values
WHILE @@FETCH_STATUS = 0
BEGIN
set @BSVal= (select top 1 SCID from vSC where (EnID in
(select EnID from En where EnName='BAIDU')
and QTID=1 and [email protected] [email protected])order by ITime desc);
set @GSVal= (select top 1 SCID from vSC where (EnID in
(select EnID from En where EnName='GRAPHIC') and QTID=1
and [email protected] [email protected]) order by ITime desc);
select * from
vM m
join vw5TABLE BNDCG on (m.QSid=BNDCG.QID And BNDCG.Position=1)
join vw5TABLE GNDCG on (m.QSid=GNDCG.QID And GNDCG.Position=1)
where
[email protected]
and [email protected]
and [email protected] qID
and [email protected] qID
and [email protected]
FETCH NEXT FROM M_Cursor
INTO @MID, @QSID
END
CLOSE M_Cursor;
DEALLOCATE M_Cursor;
謝謝!聽起來是正確的,我會按照你的建議實施臨時表。 – Lav 2013-04-05 15:30:53
在相關說明上還有一個問題,查詢返回空行以及如何避免在輸出中獲取空行,是唯一的方法爲每個條件添加IS NOT NULL - 謝謝 – Lav 2013-04-05 15:50:54
不介意上述問題,在使用臨時表方法後,不返回空行。 – Lav 2013-04-05 16:28:31