Я использую T- SQL.
У меня есть временная таблица #t2
, в которой только один столбец называется internal
.
Значения столбца n
раз последовательность от 1 до 3
т.е.: 1 2 3 1 2 3 1 2 3 ...
Я хочу добавить этот столбец в другую временную таблицу #t1
, в которой есть только столбец дат с именем Date
(при условии, что число строки двух таблиц одинаковы).
Если я хочу использовать соединение, мне нужно предложение on
, но у меня нет ключа, который имел бы смысл. Более того, cross join
не работает, так как умножает количество столбцов. Поэтому я подумал добавить row_number
к каждой таблице и внутреннему соединению во вновь сформированных столбцах row_number.
Однако для row_number требуется предложение order by
, и, хотя #t1
содержит столбец Date
, который имеет смысл сортировать, таблица #t2
этого не делает, поэтому решение row_number также не работает.
Я попытался добавить столбец id
в таблицу #t2
и добавить row_number, используя while l oop, но столбец id
заполняется только значениями NULL
.
ALTER TABLE #t2
ADD id integer;
declare @iterFlag integer
declare @iteration2 integer
set @iteration2 = (select count(internal) from #t2)
--print @iteration2
set @intFlag = 1
while (@intFlag <= @iteration2)
begin
INSERT INTO #t2 (id)
VALUES (@intFlag)
SET @intFlag = @intFlag + 1
end;
go
Если вместо использования
INSERT INTO #t2 (id)
VALUES (@intFlag)
я использую:
UPDATE #t2
SET id = @intFlag
, тогда я получу только результат (select count(internal) from #t2)
.
У вас есть какое-нибудь решение, которое заставило бы меня сложить два столбца рядом друг с другом?