Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > 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
Сообщений: 18,108
Репутация: 6385
По умолчанию

Что значит добавить после этой строки? 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
Сообщений: 18,108
Репутация: 6385
По умолчанию

. .
Цитата:
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,615
Репутация: 5352
По умолчанию

Цитата:
Сообщение от 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,615
Репутация: 5352
По умолчанию

Цитата:
Сообщение от 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,615
Репутация: 5352
По умолчанию

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


14:34.


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

RusProfile.ru


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