Например, у меня есть первая таблица, и я хочу заполнить вторую таблицу, используя первую таблицу.Как добавить строки во вторую таблицу из первой таблицы с использованием выражения Common table в SQL Server
Table A
Name A B C D
-----------------------
name1 a1 b1 c1 d1
name2 a2 b2 c2 d2
Table B (Desired Format)
ID Name Code
----------------------
1 name1 a1
2 name1 b1
3 name1 c1
4 name1 d1
5 name2 a2
6 name2 b2
7 name2 c2
8 name2 d2
В соответствии с предложениями @Surendra Нат GM, я попробовал этот
DECLARE @counter as int
SET @counter = 1;
;WITH Actual AS
(
SELECT ROW_NUMBER() OVER(ORDER BY IDKEY) as ID FROM Northwind.dbo.Table1
WHERE
),FIRST AS
(
SELECT ((ROW_NUMBER() OVER(ORDER BY IDKEY))*4-3) AS ID,Name, A
FROM Northwind.dbo.Table1
),SECOND AS
(
SELECT ((ROW_NUMBER() OVER(ORDER BY IDKEY))*4-2) AS ID, Name ,B
from Northwind.dbo.Table1
), NEXT AS
(
SELECT ((ROW_NUMBER() OVER(ORDER BY IDKEY))*4-1) AS ID, Name, C
from Northwind.dbo.Table1next
), ________ as
(
SELECT ((ROW_NUMBER() OVER(ORDER BY IDKEY))*4) AS ID, Name, D
from Northwind.dbo.Table1
)
@counter = @counter+1;
)
SELECT * FROM FIRST
UNION ALL
SELECT * FROM SECOND
UNION ALL
SELECT * FROM NEXT
UNION ALL
SELECT * FROM _________
ORDER BY ID
Вот то, что я использую после "ВТОРОГО AS". Я пробовал писать «THIRD AS», но, похоже, такой команды не существует, поэтому после некоторого поиска я мог написать третью строку с помощью «NEXT AS», но я совершенно не знаю, как мне вставить четвертую строку.
Я знаю, что можно просто написать 4 команды вставки для каждого из A, B, C и D, но тогда я получить не коды в следующем порядке, который не желателен:
Table B(NOT DESIRED IN THIS FORMAT)
ID Name Code
----------------------
1 name1 a1
2 name2 a2
3 name1 b1
4 name2 b2
5 name1 c1
6 name2 c2
7 name1 d1
8 name2 d2
Кроме того, желаемый формат может быть достигнут с помощью простых циклов, но в проекте, над которым я работаю, существует около 200000 строк, а метод простых циклов занимает много времени. Итак, я хочу сделать это с помощью CTE. Пожалуйста помоги.
показать свою структуру таблицы обоих таблиц ... ?? –