Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите найти статью, в которой подробно разлаживалось почему вариант Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. может привести к артефактам и некорректной конкатенации и необходимо заменить это на/через XML PATH Во первых я сам столкнулся с некорректной работой такого алгоритма, а во вторых, где-то на просторах интернета, нашел статью подробную, где рассказывалось на уровне движка ядра MSSQL почему так происходит (из-за ORDER BY) Или если кто может подробно объяснить своими словами, если нет статьи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 13:43 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
вот тут обсуждали: SORT iterator или еще раз о "сборе в переменную" смотрите еще и ссылку в первом посте на тему, по мотивам которой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 13:49 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
X-Cite, Код: sql 1. 2. эквивалентно Код: sql 1. 2. где Expr вычисляется в Compurte Scalar плана выполнения. Соответственно @A = Expr будет выполнено столько раз, сколько строк в результирующем наборе. Возьмите пример: Код: 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. В первом случае потребителем результата Compute Scalar будет select @s = ... Выполнятся этот Compute scalar будет 3 раза, каждый раз с новым значением @s. В результате получите агрегированную строку. Во вотором случае потребителем результата Compute Scalar будет Sort. Sort - блокирующий оператор, т.е. выход появится только тогда, когда будет потреблен весь вход. Т.е. Compute Scalar выполняетеся те же 3 раза, только с одним и тем же значением @s. В результате получите @s = последнему полученному значению s из таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 14:13 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
Да. Большое спасибо. Надо будет в закладки добавить. Будет весомый аргумент для новых молодых сотрудников привыкших делать как умею... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 14:30 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
X-Cite, Лечится довольно легко: Код: sql 1. 2. 3. 4. Но все равно это не повод пользоваться недокументированным способом при наличии документированного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 15:31 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
invmX-Cite, Лечится довольно легко: Код: sql 1. 2. 3. 4. Но все равно это не повод пользоваться недокументированным способом при наличии документированного.Кстати, в TOP() тип BIGINT, так что можно задать побольше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 15:33 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
iapКстати, в TOP() тип BIGINT, так что можно задать побольше Лень f-ы считать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 15:46 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
invmiapКстати, в TOP() тип BIGINT, так что можно задать побольше Лень f-ы считать 9223372036854775807 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 15:50 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
iap9223372036854775807Емкости моей памяти недостаточно для запоминания :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 16:00 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
invmiap9223372036854775807Емкости моей памяти недостаточно для запоминания :)Поэтому я каждый раз лезу в справку про BIGINT! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 16:02 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
Кстати, максимальное значение INT можно получить вот так: CHECKSUM(NULL*0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 16:15 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
iapмаксимальное значение INT можно получить вот так: CHECKSUM(NULL*0)Забавно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 16:29 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
iapКстати, максимальное значение INT можно получить вот так: CHECKSUM(NULL*0) Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 17:04 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
VGalamakh, iap, invm Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. BIGINT округляется, как получить реальное значение? Google, Wikipedia и MSDN не предлагать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 18:00 |
|
||
|
Агрегация строк в одну
|
|||
|---|---|---|---|
|
#18+
Ладно, нашел на SO Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 18:18 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=165&tid=1690341]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 425ms |

| 0 / 0 |
