我正在使用SQL,而我似乎无论如何也搞不清楚这一点。
我的存储过程中有一个名为@curType的局部变量。我有两个表,DTXR和DP。DP包含列type和programID。DTXR包含列programID和QEI。向存储过程传递QEI,我需要从表DP中获取type并将其赋给局部变量@curType。
所以,我现在有
select @curType = [Type] From DP d
Join DTXR x on d.ProgramId = x.ProgramID
where x.QEI = @p_QEI. @p_QEI是传递到存储过程中的变量。
我遇到的问题是这似乎没有设置@curType。如果我像这样手动设置程序id,它就会起作用:
select @curType = [Type] from DP Where DP.ProgramId = 120但是join语句似乎将@curType设置为null。
发布于 2012-04-05 02:29:59
实际上,这应该是可行的。我将检查以下代码是否返回任何内容(如果返回,返回的第一个结果是什么?):
select [Type] From DP d
Join DTXR x on d.ProgramId = x.ProgramID
where dtxr.QEI = @p_QEI这应该是问题所在,因为here is a fiddle proving that a join does nothing different
发布于 2012-04-05 03:07:03
我不确定你的代码是否应该因为WHERE子句而工作。IMO线路:
where dtxr.QEI = @p_QEI应该如下所示:
where x.QEI = @p_QEI我的第二个提示,请检查@p_QEI变量,它是否包含正确的值?
https://stackoverflow.com/questions/10017127
复制相似问题