保存要在IN比较中使用的查询结果

时间:2012-05-10 21:43:17

标签: mysql sql tsql

是否可以将查询结果保存到变量中并且能够在IN语句中使用它

示例:

...

declare @ListOfValues ?DATA TYPE? = select Values from tblValueList

while exists (select top 1 RecordID From @tblResults)
begin
    If @variable in (@ListOfValues)
    begin
        ...

由于在循环内部进行查询是不好的做法(来自前端开发的假设),在后端开发中做这样的事情的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

嗯,你问题的答案是“不”。另外,我还没有完全理解你的伪SQL。 @variable来自哪里?

无论如何,您的问题有三个答案:

(1)最简单的方法是将值列表存储在临时表中。然后你可以删除while循环中的每一个。

(2)您可以使用游标浏览元素。

(3)你可以将值连接成一个字符串,并在while循环中进行复杂的字符串操作。