sql server中的多个游标出现问题

sql server中的多个游标出现问题,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一张有四张牌的桌牌 阿根蒂德 执照号码 权限线 管辖权 假设我有一条记录具有以下值 AgentId=307 执照号码=245678 Lineof Authority=“牙科服务、个人热线、伤员” 辖区=“阿拉巴马州,纽约州” 同样,我在这个表中还有其他不同值的记录 请注意,权限行和辖区行包含多个由逗号“,”分隔的值 如果我将参数传递为 @AgentId=307 @权限行=“伤亡” @管辖权=“纽约” 那么输出应该是 执照号码=245678 我有如下的存储过程 ALTER PR

我有一张有四张牌的桌牌

  • 阿根蒂德
  • 执照号码
  • 权限线
  • 管辖权
假设我有一条记录具有以下值

  • AgentId=307
  • 执照号码=245678
  • Lineof Authority=“牙科服务、个人热线、伤员”
  • 辖区=“阿拉巴马州,纽约州”

同样,我在这个表中还有其他不同值的记录

请注意,权限行和辖区行包含多个由逗号“,”分隔的值

如果我将参数传递为

  • @AgentId=307
  • @权限行=“伤亡”
  • @管辖权=“纽约”
那么输出应该是

执照号码=245678

我有如下的存储过程

ALTER PROCEDURE [dbo].[prLicenceFetchForAgentId]  

@LineOfAuthority nvarchar(max),
@Jurisdiction nvarchar(max),
@AgentId int

AS
Create table #tbLOA (
LOA nvarchar(max)
);

create table #tbtempJuris(
Jurisdiction nvarchar(max)
);

Insert into #tbLOA(LOA) Select LineOfAuthority from tbLicence where AgentId =@AgentId;
Insert into #tbtempJuris(Jurisdiction) Select Jurisdiction from tbLicence where AgentId =@AgentId;

DECLARE @LOASubString varchar(100);
DECLARE @JurisdictionSubString varchar(100);

-- first cursor

DECLARE @MyCursor CURSOR
SET @MyCursor = CURSOR FAST_FORWARD
FOR
Select LOA FROM #tbLOA
OPEN @MyCursor
FETCH NEXT FROM @MyCursor
INTO @LOASubString  

WHILE @@FETCH_STATUS = 0
BEGIN
-- second cursor

DECLARE @MyCursor2 CURSOR
SET @MyCursor2 = CURSOR FAST_FORWARD
FOR
Select LOA FROM #tbLOA
OPEN @MyCursor2
FETCH NEXT FROM @MyCursor2
INTO @JurisdictionSubString  

 WHILE @@FETCH_STATUS = 0
 BEGIN
 --second code

 if(@LOASubString = @LineOfAuthority and @JurisdictionSubString = @Jurisdiction)
 begin
 Select LicenceNumber from tbLicence where LineOfAuthority = @LOASubString
 and Jurisdiction=@JurisdictionSubString and AgentId =@AgentId;
 break;
 end

 FETCH NEXT FROM @MyCursor2
 INTO @JurisdictionSubString

 END

 CLOSE @MyCursor2
 DEALLOCATE @MyCursor2

 --end cursor 2

 FETCH NEXT FROM @MyCursor
 INTO @LOASubString

 END

CLOSE @MyCursor
DEALLOCATE @MyCursor
现在我无法得到正确的结果。。。它没有显示任何许可证号码。。。
请帮帮我

首先,在一列中包含多个值反对数据库设计的第一种正常形式,应该不惜一切代价避免

其次,我不明白你到底在用两个嵌套的游标做什么

这似乎是一个非常简单的
SELECT
语句:

 SELECT
     LicenceNumber 
 FROM 
     dbo.tbLicence 
 WHERE
     AgentId = @AgentId
     AND LineOfAuthority LIKE '%' + @LineOfAuthority + '%'
     AND Jurisdiction = LIKE '%' + @Jurisdiction + '%';

你完全正确,先生。。。实际上,在一列中包含多个值的想法不是我的想法。这是另一个麻风病人做的。。。非常感谢,先生。。。