Замена нескольких строк в MySQL - PullRequest
0 голосов
/ 06 мая 2020

У меня есть набор данных, подобный этому:

ID. Names 
1.  Myra
2.  John
3.  Dan
4.  James
5.  Sam

Мне нужен запрос, чтобы поменять местами имена соседних идентификаторов.

Ожидаемый результат

ID. Names 
1.  John
2.  Myra
3.  James
4.  Dan
5.  Sam

Я пробовал использовать Case, но это не распространяется на будущие записи данных.

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Предполагая последовательные идентификаторы ...

SELECT name FROM my_table x ORDER BY ROUND(x.id/2), x.id DESC;
0 голосов
/ 06 мая 2020

Очень странно. Вы можете использовать оконные функции:

select id, name,
       (case when id % 2 = 1 then lead(name) over (order by id)
             else lag(name) over (order by id)
        end) as swapped_name
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...