0
我需要我的Cursor中的CASE語句正確的syntx幫助。光標內部的複雜CASE語句的正確語法
背景:我希望CASE語句要做的是查看錶Concatenated_File和列FileID中的任何一行說'File1',我希望它更新相應的表中的MRNID,這是標題Load_File_1。我想繼續CASE語句,即任何一行說'File2',我希望它更新適當的表中的MRNID,Load_File_2。
這是我到目前爲止,但我無法弄清楚正確的語法。任何幫助,將不勝感激。謝謝。
DECLARE @FILEID AS VARCHAR(255)
DECLARE @MRNID AS VARCHAR(255)
DECLARE @UniqueID AS VARCHAR(255)
DECLARE @LNAME AS VARCHAR(255)
DECLARE @FNAME AS VARCHAR(255)
DECLARE @Birthdate AS VARCHAR(255)
DECLARE @SSN AS VARCHAR(255)
DECLARE @HOLD_MRNID AS VARCHAR(255)
DECLARE @HOLD_UniqueID AS VARCHAR(255)
DECLARE @HOLD_LNAME AS VARCHAR(255)
DECLARE @HOLD_FNAME AS VARCHAR(255)
DECLARE @HOLD_Birthdate AS VARCHAR(255)
DECLARE @HOLD_SSN AS VARCHAR(255)
SET NOCOUNT ON
DECLARE curDB CURSOR FAST_FORWARD FOR
-----------------------------------------------
SELECT UniqueID, MRNID, LNAME, FNAME, Birthdate, SSN
FROM Concatenated_File
ORDER BY LNAME, FNAME, Birthdate, SSN
-----------------------------------------------
-- initialize variables
select @FILEID=''
select @MRNID=''
select @UniqueID=''
select @FNAME=''
select @LNAME=''
select @Birthdate=''
select @SSN=''
select @HOLD_MRNID=''
select @HOLD_UniqueID=''
select @HOLD_FNAME=''
select @HOLD_LNAME=''
select @HOLD_Birthdate=''
select @HOLD_SSN=''
OPEN curDB
FETCH NEXT FROM curDB into @FILEID, @MRNID, @UniqueID, @FNAME, @LNAME, @Birthdate, @SSN
WHILE (@@FETCH_STATUS = 0)
BEGIN
IF @LNAME = @HOLD_LNAME and @FNAME = @HOLD_FNAME and @Birthdate = @HOLD_Birthdate and @SSN = @HOLD_SSN
BEGIN
select @FILEID
CASE
When @FILEID = 'File1' Then
Update Load_File1
Set MRNID = @HOLD_MRNID
Where UniqueID = @UniqueID
When @FILEID = 'File2' Then
Update Load_File2
Set MRNID = @HOLD_MRNID
Where UniqueID = @UniqueID
END
ELSE
BEGIN
select @HOLD_UniqueID = @UniqueID
select @HOLD_MRNID = @MRNID
select @HOLD_FNAME = @FNAME
select @HOLD_LNAME = @LNAME
select @HOLD_Birthdate = @Birthdate
select @HOLD_SSN = @SSN
END
FETCH NEXT FROM curDB into @FILEID, @MRNID, @UniqueID, @FNAME, @LNAME, @Birthdate, @SSN
END
CLOSE curDB DEALLOCATE curDB
非常感謝。我有一個想法,我需要一個IF ... ELSE語句,但我不確定。它效果很好。再次感謝! – user992263