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

Откуда:
Сообщений: 39
Здравствуйте подскажите пожалуйста как можно сделать select запрос в определенной последовательности строк из таблицы
к примеру у меня есть таблица из 10 строк мне нужно из нее вытащить в такой последовательности 2,8,5,6,7,1,9,10,3,4

Или как можно вставить в таблицу строку между строками без потери других строк

Спасибо!
30 июн 11, 10:59    [10897666]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
Glory
Member

Откуда:
Сообщений: 104751
maxcab

Или как можно вставить в таблицу строку между строками без потери других строк


Запомните раз и навсегда - порядок записей в результатах запроса гарантирует только наличие ORDER BY
30 июн 11, 11:04    [10897706]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Эту последовательность задаёт какая-то функция? Тогда ставьте эту функцию в ORDER BY
А из общих соображений так:
SELECT * FROM [Table] ORDER BY
 CASE [Field]
  WHEN  2 THEN 1
  WHEN  8 THEN 2
  WHEN  5 THEN 3
  WHEN  6 THEN 4
  WHEN  7 THEN 5
  WHEN  1 THEN 6
  WHEN  9 THEN 7
  WHEN 10 THEN 8
  WHEN  3 THEN 9
  WHEN  4 THEN 10
 END;
Здесь [Field] - это поле, в котором хранятся перечисленные Вами значения.

Вставить в таблицу записи можно, например, командой INSERT.
Поскольку Вы об этом спрашиваете, то я делаю вывод, что Вам рано задавать вопросы здесь.
Сначала надо изучить основы SQL по учебникам.
30 июн 11, 11:07    [10897730]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
maxcab
Member

Откуда:
Сообщений: 39
Спасибо огромное!
30 июн 11, 11:39    [10898037]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
maxcab
Member

Откуда:
Сообщений: 39
Я извиняюсь но не могли бы вы показать как можно сделать insert между строками к примеру мне нужно вставить строку между 5 и 6 записями
Спасибо!
30 июн 11, 11:58    [10898254]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
maxcab
Я извиняюсь но не могли бы вы показать как можно сделать insert между строками к примеру мне нужно вставить строку между 5 и 6 записями
Спасибо!
Здесь Вас никто не понимает!
Что такое "5 и 6 записи"??
"Между строками" - это как?
Про INSERT Вы, всё-таки, в курсе или нет?
30 июн 11, 12:06    [10898314]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1579
maxcab
Я извиняюсь но не могли бы вы показать как можно сделать insert между строками к примеру мне нужно вставить строку между 5 и 6 записями
Спасибо!
Пятая и шестая они только для Вас. Сервер не различает записи по номерам. Сервер не умеет вставлять записи в определенное место между другими записями ибо у него нет определенного порядка записей, он всегда их видит как неупорядоченное множество записей.
30 июн 11, 12:14    [10898396]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
maxcab
Member

Откуда:
Сообщений: 39
insert я знаю но строки добавляются в самом низу таблицы (либо в самом вверху таблицы при установке соответствующего свойства). А как можно например есть выделенная строка, а вставить новую строку нужно над ней, спасибо
30 июн 11, 12:14    [10898397]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
порядок вставки - это дело сервера
порядок отображения - это ORDER BY и ваши руки
30 июн 11, 12:15    [10898417]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1579
maxcab
insert я знаю но строки добавляются в самом низу таблицы (либо в самом вверху таблицы при установке соответствующего свойства).
Какого еще свойства? Какие еще такие верх-низ таблицы?
А как можно например есть выделенная строка, а вставить новую строку нужно над ней, спасибо
Выделенная где? Выделенная кем? Как сервер узнает об этом выделении?
30 июн 11, 12:16    [10898422]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
Albert Gor
Member

Откуда: Москва
Сообщений: 250
Добавьте в таблицу еще одно поле и используйте его для сортировки. Для первой записи в поле внесите число 1024, для второй - 2048, для третьей - 3072 и т.д. Понадобится вставить запись между второй и третьей - внесите в поле для новой записи число 1536. Когда плотность чисел не позволит дальнейшую вставку -- обновите данные в поле. Для первой записи в поле внесите число 1024, для второй - 2048, для третьей - 3072 и т.д. Я давно использую эту замечательную методику в своих таблицах и давно искал единомышленника на этом форуме -- того, чьи глаза не зашорены реляционными постулатами. Того, кто понимает важность порядка строк в таблицах баз данных.
30 июн 11, 12:34    [10898619]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
maxcab
Member

Откуда:
Сообщений: 39
Albert Gor,
Спасибо большое!
30 июн 11, 12:41    [10898693]     Ответить | Цитировать Сообщить модератору
 Re: select запрос в определенной посдеовательности  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Albert Gor
Добавьте в таблицу еще одно поле и используйте его для сортировки. Для первой записи в поле внесите число 1024, для второй - 2048, для третьей - 3072 и т.д. Понадобится вставить запись между второй и третьей - внесите в поле для новой записи число 1536. Когда плотность чисел не позволит дальнейшую вставку -- обновите данные в поле. Для первой записи в поле внесите число 1024, для второй - 2048, для третьей - 3072 и т.д. Я давно использую эту замечательную методику в своих таблицах и давно искал единомышленника на этом форуме -- того, чьи глаза не зашорены реляционными постулатами. Того, кто понимает важность порядка строк в таблицах баз данных.
Нет в таблицах никакого порядка строк!
Можете даже гапак сплясать, а порядка там всё равно не будет!
Разве что есть поле, определяющее порядок (как у Вас).
Так это же не порядок записей в таблице. Ведь это поле ещё в ORDER BY запроса использовать надо...

Слово-то какое - "зашорены"! Отнюдь...
30 июн 11, 13:31    [10899137]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить