Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.07.2018, 11:18   #1
mr_xxx
Форумчанин
 
Регистрация: 22.03.2012
Сообщений: 80
Репутация: 9
По умолчанию Определить номер строки и добавить после новую строку

Привет

Есть таблица : Test
нужно через sql запрос сделать следующее
Код:

name     |     lastname |     email

N1                L1      E1@mail.com
N2                L2      E2@mail.com      
N3                L3      E3@mail.com      
N4                L4      E4@mail.com      
N5                L5      E5@mail.com      
N6                L6      E6@mail.com

нужно найти строку где name='N3' и добавить после этой строки
новую строку name='X1' lastname='XL' email='x1@mail.com
после запроса должен выглядеть вот так

Код:

name     |     lastname |     email

N1                L1      E1@mail.com
N2                L2      E2@mail.com      
N3                L3      E3@mail.com   
X1                XL      X1@mail.com     
N4                L4      E4@mail.com      
N5                L5      E5@mail.com      
N6                L6      E6@mail.com

Заранее Спасибо
mr_xxx вне форума   Ответить с цитированием
Старый 12.07.2018, 11:27   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,873
Репутация: 6285
По умолчанию

Что значит добавить после этой строки? SQL так не умеет, а вот выборку сделать в нужной упорядоченности умеет. Хотя этих трех полей не достаточно для организации такой хотелки ))
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 12.07.2018, 11:29   #3
mr_xxx
Форумчанин
 
Регистрация: 22.03.2012
Сообщений: 80
Репутация: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Что значит добавить после этой строки? SQL так не умеет, а вот выборку сделать в нужной упорядоченности умеет. Хотя этих трех полей не достаточно для организации такой хотелки ))
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
нужно чтобы последовательность было таким
mr_xxx вне форума   Ответить с цитированием
Старый 12.07.2018, 11:30   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,873
Репутация: 6285
По умолчанию

. .
Цитата:
SQL так не умеет
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 12.07.2018, 11:32   #5
mr_xxx
Форумчанин
 
Регистрация: 22.03.2012
Сообщений: 80
Репутация: 9
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
нужно чтобы последовательность было таким
ну хоть как определит под каким номерем строки находется запись где name='N3'

Последний раз редактировалось mr_xxx; 12.07.2018 в 11:34.
mr_xxx вне форума   Ответить с цитированием
Старый 12.07.2018, 11:37   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,163
Репутация: 5241
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
стандарт SQL подразумевает, что записи в таблице находятся во внутреннем порядке, Вы можете влиять ТОЛЬКО на порядок, в каком эти записи выбираются (запрос SELECT .. ORDER BY .. )
Более того, стандарт SQL даже не гарантирует, что если Вы добавите в таблицу
3 записи
Name1
Name2
Name3
то после SELECT без order by они вернутся Вам в том же порядке.

поэтому, ваша задача изначально порочна.
меняйте условия задания.

приведу аналогию.
вот у Вас есть файлы в каталоге
Name1
Name2
Name3

в каком порядке они хранятся на диске (в файловой системе) ?
как добавить в каталог ещё один файл NameAlpha, чтобы он был расположен сразу после файла Name1 ?

вот и в SQL нечто подобное...
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 12.07.2018, 11:38   #7
mr_xxx
Форумчанин
 
Регистрация: 22.03.2012
Сообщений: 80
Репутация: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
. .
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
mr_xxx вне форума   Ответить с цитированием
Старый 12.07.2018, 11:39   #8
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,163
Репутация: 5241
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть как определит под каким номерем строки находется запись где name='N3'
это зависит от того, как отсортированы записи.

попробуйте сделать запрос
Код:

select * from Test order by 1 desc

и посмотрите, под каким "номерем строки" находится запись N3
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 12.07.2018, 11:40   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,163
Репутация: 5241
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
нет, нельзя.
можно изменять условие сортировки при выборке данных.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 12.07.2018, 14:39   #10
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,226
Репутация: 1231
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
Ага. Сделать своп записей так, как это используется в сортировке пузырём, например. Правда, не записи в этом случае переместятся и не строки, а значения записей в строках. Но имхо на SQL подобное - чистой воды извращение
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из dbgrid1 добавить строку в dbgrid 2. Также после добавления удалять, очищать строки в dbgrid2 Wotyou Общие вопросы Delphi 4 06.04.2016 23:26
Как добавить новую пустую строку (для заполнения данными) в DBGridEh? sergeykom Компоненты Delphi 0 13.04.2014 17:48
После вставки текста курсор переходит на новую строку BossVdele Общие вопросы Delphi 5 04.02.2014 09:30
Переход на новую строку после пробела nolz Общие вопросы Delphi 7 31.08.2009 19:33
Перевод на новую строку после нужного слова Лёшка228 Общие вопросы Delphi 2 09.06.2009 20:32


05:46.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru