SQL选择多行数据然后进行比较

时间:2012-06-24 06:34:53

标签: sql sql-server-2008

SQL Server 2008中选择 可包含10个数据列表 的最佳方法,然后将其与其中一个数据中的特定值进行比较列

如下所示

SELECT bType FROM WORK_STATION WHERE nFileId = 123456789

哪一个可以返回1到10个值MAX(将返回至少一个值)。然后将上面我们刚刚选择的SQL语句中的数据与特定值进行比较,比如

if bType = 1
--DO something

做这样的事情的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

declare @table as table(btype int)
declare @btype int

insert into @table
SELECT bType FROM WORK_STATION WHERE nFileId = 123456789

while(exists(select top 1 'x' from @table)) --as long as @table contains records continue
begin
   select top 1 @btype = btype from @table

   if(@btype = 10)
     print 'something'

   delete top (1) from @table --remove the previously processed row. also ensures no infinite loop
end 

答案 1 :(得分:0)

我认为您可以使用SP来声明变量,然后将其与结果集进行比较,如果您知道只有10个值,则可以使用临时表并插入10个值。

我希望这有用。