我正在编写存储过程如下:
CREATE PROCEDURE ListByOrderRequestId
@EntityId int,
@EntityTypeId varchar(8)
AS
BEGIN
SET NOCOUNT ON;
Declare @IDS table(OrderRequestId int)
INSERT INTO @IDS
SELECT OrderRequestTaskId
FROM OrderRequestTask ORT WITH (NOLOCK)
WHERE ORT.OrderRequestId = @EntityId
SELECT N.EntityNoteId AS Id,
N.UpdateDate AS DateStamp,
N.EntityNoteText,
N.EntityId,
N.EntityNoteTypeId,
N.EntityTypeId
FROM EntityNote N
WHERE (N.EntityId = @EntityId AND N.EntityTypeId ='ORDREQ')
*OR(N.EntityId = @IDS VAL1 AND N.EntityTypeId ='TASK')
OR(N.EntityId = @IDS VAL2 AND N.EntityTypeId ='TASK')*
END
表@IDS可以包含0或1个或更多值。我想遍历@TDS中的值并相应地创建上面的where子句。请帮帮我。
答案 0 :(得分:2)
与循环遍历表格相反,您可以在where子句中使用它,如下所示:
Select * From {Your Table} Where ID in (Select OrderRequestId From IDS)
这比循环要快得多。