Привет, мой код выглядит следующим образом:
DECLARE @cnt INT = 0;
WHILE @cnt < 256
BEGIN
SELECT
ITEM1 ,
ITEM2 ,
ITEM3
FROM Table_Name
SET @cnt = @cnt + 3
End
Я хочу сделать так, как показано ниже:
DECLARE @cnt INT = 0;
WHILE @cnt < 256
BEGIN
SELECT
ITEM@cnt+1 ,
ITEM@cnt+2 ,
ITEM@cnt+3
FROM Table_Name
SET @cnt = @cnt + 3
End
Так что он будет выполняться за один цикл. Пожалуйста, помогите мне в этом.
заранее спасибо
как должны выглядеть ожидаемые результаты


Если вы хотите составить свой запрос с использованием переменных, вы должны использовать динамический TSQL для создания своего выбора, затем вы можете выполнить его с помощью EXEC(...):
DECLARE @sql varchar(max)= ' SELECT '
DECLARE @cnt INT = 0;
WHILE @cnt < 256
BEGIN
set @cnt = @cnt + 1
set @sql = @sql + ' ITEM' + cast(@cnt as varchar(max)) + ','
End
set @sql = replace (@sql + ' from #table_name',', from',' from')
exec (@sql)
чего вы здесь добиваетесь? Зачем это зацикливать?