|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
MS SQL не моё на я в нем, и решение я нашел, но прежде всё сделал в Oracle, и в Oracle всё работает прекрасно и быстро, а вот в MS SQL всё под большим вопросом. не буду показывать моё решение, хочу узнать разные мнения, если у кого есть желание поучавствовать, читаем дальше есть таблица в ней есть поле, в котором задается принудительный порядок сортировки, каждая запись имеет значение для сортировки от 1 до N, в случае удаления записи получается дырка, это нормально, так как настройка сортировки выполняется в софте, дырка будет закрыта. но до создания алгоритма настройки сортировки данные были уже внесены и лежат в таблице, и так, нужно сделать порядок сортировки на MS SQL по одному полю, только по тем записям, где нет значений или где значяение равно -1 или равно 0, при том исключить дублирование чисел в столбце. Задача в MS SQL без использования индекса. и так есть список -1 -1 1 2 -1 5 7 нужен результат 3 - изменено 4 - изменено 1 2 6 - изменено 5 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 12:46 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
Сделал, но не буду показывать моё решение ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 12:53 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63, непонятно, вам надо заполнить "дыры"? Или вы решили, что в базе данные будут обработаны в том порядке, в котором Вы их видите на экране? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 12:54 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63, Постановка задач, тоже - не ваше. Вам надо апдейтить колонку, в которой значения, по которым идет сортировка? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 13:01 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
baracs, постановка не моя. я так ни когда не делаю в моих проектах. и да, нужно апгрейтить столбец именно как в примере я приложил. это нужно проделать один раз, на старые данные, но конечно можно положить на софт, считать всё например в вариантовский массив, сделать сортировку, подменить значения и обратно вставить в базу, но когда речь идет о 100 записей, да, а если там миллион. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 13:11 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63 постановка не моя yemets63 настройка сортировки выполняется в софте ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 13:40 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63, что-то из серии Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Но что-то мне подсказывает, что сейчас пойдут разные уточнения... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 14:13 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63 -1 -1 1 2 -1 5 7 нужен результат 3 - изменено 4 - изменено 1 2 6 - изменено 5 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 15:02 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63 есть таблица в ней есть поле, в котором задается принудительный порядок сортировки, каждая запись имеет значение для сортировки от 1 до N, в случае удаления записи получается дырка, это нормально, так как настройка сортировки выполняется в софте, дырка будет закрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 15:14 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
andreymx, with (tablock) наше всё! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 15:45 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
yemets63, вы мыслите не множествами, а массивами. множества чисел {-1,-1,1,2,-1,5,7} {7,2,1,-1,-1,5,-1} {-1,-1,1,2,5,-1,7} между собой равны. Сервер может обрабаывать строки в любом порядке, если явно не указать порядок сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 15:52 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
andreymx, нет не критично, просто я принял сортировку от начала смотрю на первый индекс, он равен -1 смотрю далее по списку 1 занят 2 занят 3 свободен ставлю его вместо -1 и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 16:38 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
baracs, действительно тема моя, но не транслирую чьито вопросы, просто получилось так, что есть человек, и не хочетсья его обидеть, и спорить не очень приятно, но нужны мнения, которые придеться ему показать, у нас есть уверенность что он не пользователь SQL.ru , кто знает, поэтому задача была упрощена от его идеи и текст здесь. у меня есть, так называемые тупые и быстрые сортировки служебных настроечных данных в админках моих проектов, мне нравится, и не только мне, быстро, наглядно и доходчиво. конкретно в данном случае ситуация иная, и я собираю мнения построенные на решениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 16:44 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
баловство одно Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
до IDvalue152-13-144515667-117-118919-1292949-159-18100после IDvalue1521324451566731771891982929491059118100 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 18:51 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
baracs Постановка задач, тоже - не ваше. yemets63 это нужно проделать один раз, на старые данные, но конечно можно положить на софт, считать всё например в вариантовский массив, сделать сортировку, подменить значения и обратно вставить в базу, но когда речь идет о 100 записей, да, а если там миллион. Если я сделаю сортировку много раз разными способами, а потом вставляю данные в таблицу, то от этого ничего не изменится. В сиквеле это так. Мне кажется, у вас есть какие то умолчания, из мира Оракла, и вы их переносите в свой вопрос. Но мы про них не знаем. В сиквеле сортировка результата определяется кляузой ORDER BY в запросе, и не зависит от каких то сортировок, которые вы делаете перед тем, как положить данные в таблицу. А если вы не используете ORDER BY в запросе, то сортировка результата может быть разный, она недетерминирована, и, опять же, это не зависит от того, сколько раз вы сортировали данные перед вставкой в таблицу. Или, возможно, вы имеете в виду что то совсем другое, но ваша постановка задачи просто ошеломляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2020, 20:59 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
alexeyvg, там в рассуждениях все неверно начиная от постановки задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2020, 21:06 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
alexeyvg если вы не используете ORDER BY в запросе, то сортировка результата может быть разный, она недетерминирована Это и в оракле так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 10:05 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
env alexeyvg если вы не используете ORDER BY в запросе, то сортировка результата может быть разный, она недетерминирована Это и в оракле так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 21:55 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
alexeyvg в оракле всё таки rownum есть rownum в оракле не аналог TOP N .. ORDER BY, этот псевдостолбец заполняется по мере извлечения данных в курсор, после WHERE, но до ORDER BY. Поэтому rownum не даёт никакой дополнительной сортировки и если нужны первые N строк, то надо сначала сделать сортировку в подзапросе, а уже потом накладывать ограничение rownum <= N на выборку из оного. ТС говорит про varray - это элемент процедурного языка pl/sql в оракле, наиболее близкая аналогия будет с реализацией сортировки массива данных в CLR через коллекции в .Net ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 11:02 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
думаю, если ТСу интересно еще, он переспросит ) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 14:32 |
|
установить принудительно порядок сортировки по определенным значениям
|
|||
---|---|---|---|
#18+
env alexeyvgв оракле всё таки rownum есть rownum в оракле не аналог TOP N .. ORDER BY, этот псевдостолбец заполняется по мере извлечения данных в курсор, после WHERE, но до ORDER BY. Поэтому rownum не даёт никакой дополнительной сортировки и если нужны первые N строк, то надо сначала сделать сортировку в подзапросе, а уже потом накладывать ограничение rownum <= N на выборку из оного.Я понимаю, что не аналог, вот я и думаю, что же ТС имел в виду, говоря про сортировку без order by? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 17:42 |
|
|
start [/forum/topic.php?fid=46&msg=39995596&tid=1685683]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 400ms |
0 / 0 |