Как получить данные из результата SELECT

честно говоря, не очень...

Вы наверное удивитесь, но в SQL такое понятие, как "номер строки" отсутствует в принципе.

Есть некое множество строк, хранящихся в таблице и извлекаемых сервером по запросу

select * from tab1

в том порядке, который ему представляется наиболее экономным по задействованным ресурсам.

Чтобы как-то понять, какая строка к чему относится, обычно используют некий "первичный ключ", однозначно идентифицирующий строку таблицы.

Аналогично нет доступа к полям таблицы по их номеру - только по имени. Связано это с возможной модификацией списка полей (например, при обновлении версии ПО). И кстати, отсюда настоятельные советы избегать * в списке select-а

Следующий непонятный момент - с чего вы решили, что строк в таблице ровно 2 и понадобятся только 2 переменные. Для получения итогов обработки каждой строки таблиц правильнее использовать либо временную таблицу, либо таблицу-переменную.

С учетом этого, для вашего примера могу предложить такой вариант "процедуры":

T-SQLВыделить код

1
2
3
4
5
6
7
8

select coalesce(t.column1,t.column2) cr
into #cr
from table1 t;
 
-- и далее
select t.
from #cr r
join table1 t on t.column1=r.cr or (t.column1 is null and t.column2=r.cr)

Хотя это вряд ли то, что вы имели в виду в первом посте

PS. В отличие от процедурных языков типа C# и т.п., SQL является декларативным языком. Иначе говоря, не учите сервер обрабатывать ваши данные, просто напишите, что вы хотите получить от него.