2012-06-24 4 views
0

Что бы быть лучшим подходом в SQL Server 2008, чтобы выбрать то, что может содержать список 10 данных, а затем сравнить эти данные с определенным значением в одной из его колоннSQL выбрать несколько строк данных затем сравнить

Так что-то вроде этого ниже

SELECT bType FROM WORK_STATION WHERE nFileId = 123456789 

Что может возвращать либо 1 - 10 значений MAX (будет возвращать по меньшей мере, одно значение). Затем сравнить данные из этого SQL выше высказывания, что мы только что выбрали для конкретного значения к чему-то вроде

if bType = 1 
--DO something 

Каков наилучший подход делает что-то вроде этого?

ответ

0

Я думаю, вы можете использовать SP для объявления переменных, а затем сравнить их с набором результатов, если вы знаете, что у вас есть только 10 значений, вы можете использовать таблицу temp и вставить 10 значений.

Надеюсь, это полезно.

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 
Смежные вопросы