Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Тут дурная мысль пришла и полез в очередной раз искать варианты в Интернете. Увидел https://ru.wikipedia.org/wiki/Union_(SQL) увидел то что мне надо Код: plsql 1. 2. 3. но такое не прокатывает силекты в скобках сервер не понял Если были бы скобочки поддерживались, то можно было бы сортировку для каждого запроса указать на данный момент это мне надо. Хотя я уже не раз SELECT ... FROM (SELECT person, amount FROM) городил Что по скобочкам говорит стандарт? А то может тот кто писал статью не знает об этом и я рано обрадовался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 16:57 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикЕсли были бы скобочки поддерживались, то можно было бы сортировку для каждого запроса указать про взаимосвязь скобочек и отдельной сортировки ты сам придумал? и мне тоже интересно, какой сервер в твоей ссылке для union поддерживает скобки. Order by по стандарту сортирует конечное множество результата запроса. Хочешь странные сортировки - пиши селективную процедуру, и там ставь запросы и сортировку в них в любом порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 17:42 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdvЕвгений БолтикЕсли были бы скобочки поддерживались, то можно было бы сортировку для каждого запроса указать про взаимосвязь скобочек и отдельной сортировки ты сам придумал? и мне тоже интересно, какой сервер в твоей ссылке для union поддерживает скобки. Order by по стандарту сортирует конечное множество результата запроса. Хочешь странные сортировки - пиши селективную процедуру, и там ставь запросы и сортировку в них в любом порядке. Не понял вопроса, наверно туповато описал ситуацию. Я имел ввиду, что тогда есть возможность написать без хранимых процедур и заморочек: Код: plsql 1. 2. 3. просто стало действительно интересно, неужели в стандарте есть скобочки. Тогда это могло бы дать возможность переписать по другому, с более простым видом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 18:00 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик, да я понял. только скобочки, даже если бы и были, тебе не помогут. ну не делают order by у разных частей union, что со скобочками, что без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 18:33 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик> Хотя я уже не раз SELECT ... FROM (SELECT person, amount FROM) городил Так а в чём проблема тогда, лень лишний Select написать ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 19:21 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЕвгений Болтик> Хотя я уже не раз SELECT ... FROM (SELECT person, amount FROM) городил Так а в чём проблема тогда, лень лишний Select написать ? Что ж вы так снова на меня. Лично я ничего нового не предложил я просто процитировал увиденное. По началу помнится SELECT ... FROM (SELECT FROM) тоже не хотели городить, но потом как то раз и написали. using тоже не было и т.д. Читабельность проще. Просто если скобки есть, то это должно говорить о том, что можно с городить огород который я описал т.к. order by или group by тогда допустим внутри. Странно только почему не расширить возможности. Вы сразу идею в топку. Я и без этого понимаю, что можно к верх ногами делать и без нововведений. Что и делаю уже не первый год. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 20:45 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикВы сразу идею в топку. ради интереса 1. найди и приведи тут сервер, в котором вот такой синтаксис union, со скобками. 2. найди и приведи тут сервер, в котором в обоих частях union можно указывать order by (таким образом, как ты хочешь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 22:04 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик> Что ж вы так снова на меня. Вы сразу идею в топку. Во-первых, лично я не снова, первый раз вроде. Во-вторых, не в топку, это Дима на тебя накинулся. Идея как идея, но в текущем изложении (синтаксисе) противоречит стандарту, и как её "облегчить" лично я не вижу. При чём не только из-за скобочек, IIRC. > Читабельность проще. Это да, не спорю. Но по сути там экономия только на "Select *" ради синтаксического сахара. Хотя в свете последних веяний я ничему особо не удивлюсь. P.S. Раньше такое делали доп.полем, если сортировка не разнонаправленная. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 22:38 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам это Дима на тебя накинулся. я не накинулся, просто у меня от таких хотелок становится кислое выражение лица. кстати, интересно, можно ли было бы сымитировать такую штуку с ClientDataSet. То есть, сначала загнать в него результат одного запроса, а потом добавить результат второго? И еще. Идеологически, допустим, если бы такая фича (сортировка каждого запроса union) была, она имела бы смысл только для UNION ALL. Потому что просто UNION выкидывает повторы. И если повторы есть, то при раздельной сортировке откуда тогда их выкидывать? Из первого или второго объединяемых наборов? И в итоге получилось бы натуральное "рыбу заворачиваем" - если это union all, то все ок; если это union, то не допускаем несколько order by; если в union all только один order by, то сортируем все, а если в union all несколько order by, то не сортируем результат... Мешанина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 22:56 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdv, Вы полностью описали, как я хотел бы это видеть :) имхо все логично и очевидно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:00 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdvЕвгений БолтикВы сразу идею в топку. ради интереса 1. найди и приведи тут сервер, в котором вот такой синтаксис union, со скобками. 2. найди и приведи тут сервер, в котором в обоих частях union можно указывать order by (таким образом, как ты хочешь). Начал поиск. Попал сюда http://www.cyberforum.ru/sql-server/thread847220.html далее окромя того кто создал это я не могу идти. Иду к создателю зверя https://msdn.microsoft.com/ru-ru/library/ms180026.aspx Код: sql 1. 2. 3. 4. 5. начинает интересовать query_expression https://msdn.microsoft.com/ru-ru/library/ms189499.aspx Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. нашли искомое оно выражается как Код: sql 1. 2. 3. 4. обрати внимание <query_specification> не допускает сортировок а вот <query_expression> это и есть обычный SELECT со всеми вытекающими посему вывод раз могут быть вложенные union то законно может быть такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:04 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdvЕвгений БолтикВы сразу идею в топку. ради интереса 1. найди и приведи тут сервер, в котором вот такой синтаксис union, со скобками. 2. найди и приведи тут сервер, в котором в обоих частях union можно указывать order by (таким образом, как ты хочешь). Возможно Firebird будет первым, кто реализует этот удобный и всем понятный синтаксис. Потом подтянутся другие срвера. А потом и в стандарте пропишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:06 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений Болтикобрати внимание <query_specification> не допускает сортировок а вот <query_expression> это и есть обычный SELECT со всеми вытекающими Да ну? У тебя и с чтением плохо?.. Код: sql 1. 2. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:24 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамЕвгений Болтик> Что ж вы так снова на меня. Вы сразу идею в топку. Во-первых, лично я не снова, первый раз вроде. Во-вторых, не в топку, это Дима на тебя накинулся. Идея как идея, но в текущем изложении (синтаксисе) противоречит стандарту, и как её "облегчить" лично я не вижу. При чём не только из-за скобочек, IIRC. > Читабельность проще. Это да, не спорю. Но по сути там экономия только на "Select *" ради синтаксического сахара. Хотя в свете последних веяний я ничему особо не удивлюсь. P.S. Раньше такое делали доп.полем, если сортировка не разнонаправленная. Еще есть одна проблема, если ты с таким мало сталкивался, то кол-во контекстов иногда зашкаливает и разбить как то надо на 2 тела. Вот тут и начинаешь танец в бубном. Дополнительные поля в таблицу и триггеры один за другим по определенной логике работы с повторами чтений данных которые вроде как в первом триггере делал (жаль переменные для триггеров у таблицы не могут быть общие, на изменение одной записи.). Я уже смерился с двойным чтением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:24 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
na-будет первым, кто реализует этот удобный и всем понятный синтаксис. а мне кажется что это чешуя, а не "понятный синтаксис", и нарушение стандарта. Я знаю, что отклонения от стандарта допускаются, но... хочу реальный пример (прикладной) вывода select order by union all select order by где результаты отсортированы отдельно. p.s. подозреваю, что пример будет похож на Код: sql 1. 2. 3. то есть когда хрен поймешь, по какому критерию это все отсортировано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:33 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕвгений Болтикобрати внимание <query_specification> не допускает сортировок а вот <query_expression> это и есть обычный SELECT со всеми вытекающими Да ну? У тебя и с чтением плохо?.. Код: sql 1. 2. Естественно я это видел, я долго тупил и перечитывал не понимая, а что же они все таки этим считали. В инете смотрел примеры и сравнивал с описанным в MS. Но смыл заключается в том, что человек запускал похожий запрос. Вот еще, но там я так понял человек не учел, что desc вернет записи в обратном порядке, во втором подзапросе: http://forum.sources.ru/index.php?showtopic=136262 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:41 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdvna-будет первым, кто реализует этот удобный и всем понятный синтаксис. а мне кажется что это чешуя, а не "понятный синтаксис", и нарушение стандарта. Я знаю, что отклонения от стандарта допускаются, но... хочу реальный пример (прикладной) вывода select order by union all select order by где результаты отсортированы отдельно. p.s. подозреваю, что пример будет похож на Код: sql 1. 2. 3. то есть когда хрен поймешь, по какому критерию это все отсортировано. Тока не надо критики. Я просто экспериментировал мне надо было результат получить и по ошибке применил такую схему из другого запроса. Но там действительно выборки были с обратной сортировкой и все записи которые будут удовлетворять. Тут оказалось нужна одна запись и это решилось через coalesce. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 23:47 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
kdvхочу реальный пример (прикладной) вывода select order by union all select order by Пожалуйста. Регулярно надо: Код: sql 1. 2. 3. Сейчас приходится делать так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. много лишней писанины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 00:36 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
YuRockkdvхочу реальный пример (прикладной) вывода select order by union all select order by Пожалуйста. Регулярно надо: Код: sql 1. 2. 3. Вот так будет ещё жизненней: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:03 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
YuRock, а ты не пробовал так и написать ??? Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:12 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
hvladа ты не пробовал так и написать ??? Пробовал. invalid ORDER BY clause получал. Возможно, будь у меня сервер поновее, там бы это и можно было сделать. Но все равно это не идеально - обязательно сортировать весь результат. Вдруг мне надо только половину? Например, "Закрепленные" строки, и все остальные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:17 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
YuRockПробовал. invalid ORDER BY clause получал.order by 1 YuRockНо все равно это не идеально - обязательно сортировать весь результат.Обеспечь соответствующее условие сортировки. Тыжпрограммист, ы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:44 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
hvladYuRock, а ты не пробовал так и написать ??? SELECT 0 AS ID, '(Все)' AS NAME FROM RDB$DATABASE UNION ALL SELECT ID, NAME FROM <TABLE> ORDER BY ID К тебе письма дошли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:46 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
Евгений БолтикК тебе письма дошли?Дошли, я позже отвечу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:48 |
|
||
|
Union вопрос к разработчикам
|
|||
|---|---|---|---|
|
#18+
hvladorder by 1 Спасибо, работает, возьму на вооружение. И как я раньше не догадался hvladYuRockНо все равно это не идеально - обязательно сортировать весь результат.Обеспечь соответствующее условие сортировки. Тыжпрограммист, ы ? Мне нужно из одной и той же таблицы получать одни и те же значения (ид и названия). Но сортировать по разным полям (пример - закрепленные и нет темы форума). Вижу 3 варианта: 1. Добавление 3-го говнополя для сортировки ORDER BY 3 2. селективная процедура; 3. Манипуляции с select from select Больше ничё в голову не лезет пока. Все три варианта мне не нравятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2015, 01:57 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38920165&tid=1562944]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 299ms |

| 0 / 0 |
