Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
12.03.2020, 21:05
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
Доброго дня! Конструкция update top (n) .... ORDER BY ... в MS SQL не работает не поддерживается. На MS-сайте написан обходной вариант. Как думаете, когда-нибудь сделают? Поделитесь, если решали подобное, опытом,- а то может я изобретаю велосипед? Может можно через MERGE, а я не "чухаю" всей мощи сей чудесной команды? Правда, у меня есть "засада" - UPDATE с простым WHERE не возможен,- ибо может быть несколько строк (полностью идентичных в КЛЮЧЕВЫХ полях!), которые выбираются по where-предикату. Что бы изменить только одну из них и сбросить в таблицу по OUTPUT, я и ставлю TOP (1). А хотелось бы их ещё и сортировать (ну, что бы выбирать по определённому параметру...). Сейчас приходится выбирать ещё и граничное условие и пихать его во where (скажем, появляется CTE, через которое это условие и формируется). Вроде всё работает, но нет "стройности и красивости". В общем, хочу кнопку "beautify" ;) -------------------------- No ROM Basic... PS Вот понравилась идея воспользоваться update top (1) ... output ... order by ... ,- но не прокатило ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.03.2020, 21:11
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_, обычно Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:01
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_, Ответ прост как 3 копейки. Список Id для обновления во временную таблицу и потом её использовать в merge, чтобы срезать число обновляемых записей (выбрать только первые n во временную таблицу). Но мне непонятно другое -- а зачем обновлять конкретно первые n записей в порядке сортировки? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:09
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
a_voronin Но мне непонятно другое -- а зачем обновлять конкретно первые n записей в порядке сортировки? "взять" в обработку первую запись из очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:23
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_, Я вот другого не пойму -- у меня update top n работает. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
(10 rows affected) Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:26
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
a_voronin SIMPLicity_, Я вот другого не пойму -- у меня update top n работает. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
(10 rows affected) Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) Ключевое слово - top (n) ... ORDER BY ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:35
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
Shakill SIMPLicity_, обычно Код: sql 1.
Спасибо! Не въехал как оно работает, но похоже что "это то что надо"... PS Если подумать, то CTE это всего лишь навсего view , но у меня в башке это не укладывается. ... Ибо до сих пор к CTE я отношусь как к способу получения выборки из адской таблицы (усечение по WHERE-предикату в описании CTE) ,- что бы потом этот кусок многократно "повертеть на х@ю" и так и сяк в основном запросе ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:43
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_, так тоже работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 08:44
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_ Ключевое слово - top (n) ... ORDER BY ... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 13:21
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_, TOP не имеет отношения к проблеме, синтаксис UPDATE не предусматривает сортировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 13:37
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_ Shakill SIMPLicity_, обычно Код: sql 1.
Спасибо! Не въехал как оно работает, но похоже что "это то что надо"... PS Если подумать, то CTE это всего лишь навсего view , но у меня в башке это не укладывается. ... Ибо до сих пор к CTE я отношусь как к способу получения выборки из адской таблицы (усечение по WHERE-предикату в описании CTE) ,- что бы потом этот кусок многократно "повертеть на х@ю" и так и сяк в основном запросе ) Это ничем не отличатся от обычного подзапроса Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 14:01
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_ ... Ибо до сих пор к CTE я отношусь как к способу получения выборки из адской таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.03.2020, 16:10
|
|||
---|---|---|---|
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
SIMPLicity_ PS Если подумать, то CTE это всего лишь навсего view , но у меня в башке это не укладывается. наоборот, вью и cte это всего лишь навсего подзапросы :) а если продолжать аналогию, то вьюхи же можно апдейтить при определенных условиях , почему cte нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.03.2020, 02:28
|
|||
---|---|---|---|
|
|||
update top (n) .... ORDER BY ... - хочу кнопку "beautify" |
|||
#18+
Shakill SIMPLicity_, обычно Код: sql 1.
Спасибо ещё раз! with cte as (select top ... ) update cte set .... output ... Попробовал,- восхитительно! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1686309]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 169ms |
0 / 0 |