sql >> Databasteknik >  >> RDS >> Sqlserver

SQL LOOP INSERT Baserat på lista över ID

Detta är vad du efterfrågar.

declare @IDList table (ID int)

insert into @IDList
SELECT id
FROM table1
WHERE idType = 1

declare @i int
select @i = min(ID) from @IDList
while @i is not null
begin
  INSERT INTO table2(col1,col2,col3) 
  SELECT col1, col2, col3
  FROM table1
  WHERE col1 = @i AND idType = 1

  select @i = min(ID) from @IDList where ID > @i
end

Men om detta är allt du ska göra i slingan bör du verkligen använda svaret från Barry istället.



  1. Ruby sort_by för arrayer som returneras av MySQL, datumformaterad som sträng

  2. Java SQLData - Casta till användarobjekt med en lista/array?

  3. Konverteringen misslyckades vid konvertering av datum och/eller tid från teckensträng

  4. Exempel på PHP + MySQL-transaktioner