Нужна команда SQL, которая вставит строку после определенной строки - PullRequest
0 голосов
/ 12 марта 2019

Мне нужна команда SQL, которая вставит строку после определенной строки. Пример: - * +1001 *

Перед таблицей

Id.         Name.      
1.           Xyz.          
2.           Xyz
3.           Xyz    

Требуется результат, необходимо добавить данные 'Abc' после каждого 'xyz', имеющего такой же идентификатор, как: -

Id.         Name.      
1.           Xyz.    
1.           Abc      
2.           Xyz
2.           Abc
3.           Xyz
3.           Abc

1 Ответ

2 голосов
/ 12 марта 2019

Вам нужно UNION ALL:

SELECT t.*
FROM (SELECT id, Name
      FROM table t
      UNION ALL
      SELECT ID, 'Abc'
      FROM table t
    ) t
ORDER BY ID, NAME;

Это не будет вставлять строки, это просто даст вам представление времени выполнения. Если вы хотите только вставку, вам нужно усечь таблицу (примечание: сделать резервную копию текущей таблицы) и выполнить операцию вставки.

...