|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.06.2010, 20:25 | #1 |
Регистрация: 19.06.2010
Сообщений: 6
|
Случайна сортировка
Здравствуйте! У меня есть таблица, в одном столбце по порядку идут значения, мне нужно перемешать их случайным образом. Как это можно сделать? Помогите пожалуйста.
|
19.06.2010, 21:21 | #2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте Макс_q.
".. в одном столбце.." - для таблиц БД более приемлемо название Поле. "..перемешать их случайным образом.." Вам поможет следующая SQL конструкция: Код:
|
19.06.2010, 21:43 | #3 |
Регистрация: 19.06.2010
Сообщений: 6
|
"SELECT * FROM Table1 ORDER BY Rnd([Поле по порядку])"
Таким образом строки сортируются, но поля остаются связанными(1-1, 2-2, 3-3), а мне нужно, чтоб одно поле оставалось как было, а второе сортировалось(Например: 1-5, 2-8, 3-1). Такое возможно? |
19.06.2010, 22:13 | #4 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Ваша задача - ".. есть таблица, в одном столбце по порядку идут значения, мне нужно перемешать их случайным образом..." получила развитие.
"..но поля остаются связанными(1-1, 2-2, 3-3).." - именно так т.к. все эти поля принадлежат одной записи, и Ваш пример "..Например: 1-5, 2-8, 3-1.." (если я верно понял задачу) может быть реализован либо с помощью составной SQL конструкции, либо наполнением массива. Но для этого потребуется дополнительное уточнение задачи. Евгений. P.S. "строки" в таблице БД чаще называют - записи |
19.06.2010, 22:22 | #5 |
Регистрация: 19.06.2010
Сообщений: 6
|
Уточнение задачи:
Создать таблицу в виде билетов для контрольных работ. Первое поле - номер вопроса, второе поле - номер билета. Нужно создать запрос, который будет сортировать номер билета случайным образом, то есть, если раньше 1ый вопрос был в 1ом билете, то после выполнения запроса, 1ый вопрос будет в каком-нибудь другом билете. Сортировать нужно именно поле с билетами. |
19.06.2010, 22:46 | #6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Задача должна быть сформулирована примерно так: Убрать заданную нумерацию, отсортировать случайным образом пронумеровать отсортированную таблицу.
Я верно понял? Евгений. |
19.06.2010, 23:03 | #7 |
Регистрация: 19.06.2010
Сообщений: 6
|
Дело в том, что номера вопросов - ключевое поле, не думаю, что можно будет его убрать и заново задать такую нумерацию, ведь таблицы связаны по этому полю, хотя если это возможно, то прошу показать как.
|
20.06.2010, 08:49 | #8 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Совершенно не обязательно "убирать" ключевое поле в источнике, проще создат временную таблицу и использовать её для нумерации.
Это может быть выполнено следующими SQL конструкциями 1. удалить таблицу TMP Код:
Код:
Код:
возможно это не самый удачный способ, но не самый сложный это точно. Евгений. Последний раз редактировалось Teslenko_EA; 20.06.2010 в 08:52. |
20.06.2010, 15:08 | #9 |
Регистрация: 19.06.2010
Сообщений: 6
|
Следуя вашей инструкции, ставлю в запрос такой код:
SELECT INT(Rnd([Id_pyt]) *1000) AS F, * INTO TMP FROM Bileti ORDER BY Rnd([Id_pyt]) SELECT (Select Count(*) FROM (SELECT F FROM TMP ORDER BY F) T1 WHERE T1.F<=T2.F) AS Id_pyt, Nom_bilet FROM (SELECT * FROM TMP) T2 ORDER BY T2.F; но выдаёт ошибку синтаксиса |
20.06.2010, 15:25 | #10 |
Регистрация: 19.06.2010
Сообщений: 6
|
Следуя вашей инструкции, ставлю в запрос такой код:
SELECT INT(Rnd([Id_pyt]) *1000) AS F, * INTO TMP FROM Bileti ORDER BY Rnd([Id_pyt]) SELECT (Select Count(*) FROM (SELECT F FROM TMP ORDER BY F) T1 WHERE T1.F<=T2.F) AS Id_pyt, Nom_bilet FROM (SELECT * FROM TMP) T2 ORDER BY T2.F; но выдаёт ошибку синтаксиса |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка Шелла и Шейкер-сортировка | AleksandrMakarov | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 11.03.2012 12:18 |
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца | немозг | Помощь студентам | 11 | 06.02.2010 21:57 |
Сортировка методом линейного выбора и "быстрая" сортировка | Карол | Помощь студентам | 4 | 27.09.2009 19:52 |
Сортировка файлов в Explorer vs сортировка в Delphi | mutabor | Общие вопросы Delphi | 11 | 04.09.2009 14:32 |
Случайна выборка из массива | spectralw | Помощь студентам | 0 | 01.05.2009 21:03 |