Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Дублирование  [new]
delphier
Member

Откуда:
Сообщений: 56
всем привет
У меня ест такая таблица

А

13
24
67
54
89
12

Мне нужна сделать дубликат колонки но на 1 строку ниже

А Б
13
24 13
67 24
54 67
89 54
12 89
12
28 май 15, 17:34    [17702965]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Для данной таблицы задача не имеет гарантированного решения, ибо нет поля, определяющего порядок следования записей.
28 май 15, 17:36    [17702983]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
delphier,

для 2012 и выше, lag() или lead() все время путаюсь:)
для 2005 и выше outer apply
для 2000 и ниже вложенный запрос
28 май 15, 17:58    [17703160]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
delphier
Member

Откуда:
Сообщений: 56
для 2005 и выше outer apply

как Использовать?
28 май 15, 18:02    [17703185]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
delphier, задача не имеет решения, как уже написал Гавриленко Сергей Алексеевич.
Сиквел не знает, что такое "на одну строку ниже".
28 май 15, 18:08    [17703228]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
delphier
Member

Откуда:
Сообщений: 56
А как возможно 1 строку умножить на 2, 2 на 3, 3 на 4 и так дали в на версию 2008
28 май 15, 18:14    [17703277]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
delphier, ну нет в таблице номеров строк, ну никак нет :) Можно только отсортировать.
28 май 15, 18:17    [17703311]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
delphier
А как возможно 1 строку умножить на 2, 2 на 3, 3 на 4 и так дали в на версию 2008



Порядок записей не гарантируется если в запросе нет ORDER BY по какому-то полю. Вам надо завести поле, определяющее порядок. Оно возможно у вас есть в реальной таблице.

Тогда OUTER APPLY по этому полу на предыдущее
28 май 15, 18:18    [17703326]     Ответить | Цитировать Сообщить модератору
 Re: Дублирование  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
a_voronin
Тогда OUTER APPLY по этому полу на предыдущее

Почему outer apply то все советуют?

Видно же в исходных данных, что ТС нужно получить в результирующем наборе на 1 строку больше, чем в начальном. КМК, задача только через FULL JOIN решается, или я ошибаюсь?
28 май 15, 18:26    [17703359]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить