Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
У меня есть таблица в базе, я собираюсь пройти по всем строчкам, и для каждой выполнить определенный набор действий. проблема возникает в том, что мне нужно обратиться к строке по ее номеру: Код: sql 1. 2. 3. 4. 5. в строке условия ROW_NUMBER() =@i выдает ошибку. Как тут написать правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 22:09 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 22:23 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRix, У записи нет номера, но может быть ключ, по которому и надо обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2019, 23:36 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixУ меня есть таблица в базе, я собираюсь пройти по всем строчкам, и для каждой выполнить определенный набор действий. Отвыкайте от курсорно-алгоритмической логики мышления. Переходите на декларативную... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 05:05 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, я не против, только как это сделать? мне нужно в задании посчитать сумму всех значений столбца, у которых указано определенное значение другого столбца. но этот второй столбец в другой таблице, а между таблицами связь по внешнему ключу. вот и прохожу по циклу, в котором из одной таблицы беру id внешнего ключа и проверяю, что там в другой таблице. тут только по всем строкам проходить, другого варианта нет (по крайней мере сама не нашла ничего подходящего) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:12 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
londinium, только тут черт ногу переломит, я это видела, потому и спросила, что ничего не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:14 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич, я не знаю, какие именно ключи брать. мне и нужно узнать в цикле, какие записи проходят, а какие нет. а по id листать смысла нет, они могут и не в порядке возрастания идти, и с пропусками (1, 2, 4...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:15 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixЩукина Анна, я не против, только как это сделать? мне нужно в задании посчитать сумму всех значений столбца, у которых указано определенное значение другого столбца. но этот второй столбец в другой таблице, а между таблицами связь по внешнему ключу. вот и прохожу по циклу, в котором из одной таблицы беру id внешнего ключа и проверяю, что там в другой таблице. тут только по всем строкам проходить, другого варианта нет (по крайней мере сама не нашла ничего подходящего) вы не своими словами объясняйте, что делать хотите, а саму задачу сюда пишите и все скрипты участвующих таблиц и их наполнерие и желаемый результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:17 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixГавриленко Сергей Алексеевич, я не знаю, какие именно ключи братьТе, которые однозначно идентифицируют запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:17 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
Соединять в запросе первую таблицу и подзапрос, в котором агрегация по полям для поиска в другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:24 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleСоединять в запросе первую таблицу и подзапрос, в котором агрегация по полям для поиска в другой Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:28 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
Упс! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. [/quote] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:28 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixмне нужно в задании посчитать сумму всех значений столбца, у которых указано определенное значение другого столбца. но этот второй столбец в другой таблице, а между таблицами связь по внешнему ключу. вот и прохожу по циклу, в котором из одной таблицы беру id внешнего ключа и проверяю, что там в другой таблице. тут только по всем строкам проходить, другого варианта нет (по крайней мере сама не нашла ничего подходящего)Нужно использовать оператор JOIN - связь таблиц друг с другом, в запросе. Например: Код: sql 1. 2. 3. 4. LanaRixони могут и не в порядке возрастания идти, и с пропусками (1, 2, 4...)Записи в базе навалены кучей на диске, нету там никакого порядка, это не таблички в эквеле. Таблицы в базе данных - это "множества", а язык SQL - язык, задающий операции над множествами - пересечение, объединение, и так далее, и выдающий готовый результат, без всяких "листаний страниц", которых в базах тоже нету, как и "порядка" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:32 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
londinium, в принципе, если в документации посидеть подольше, то можно разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:40 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixlondinium, в принципе, если в документации посидеть подольше, то можно разобраться зачем? тут на форуме куча бездельников, выложат все на блюдечке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 13:08 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixlondinium, в принципе, если в документации посидеть подольше, то можно разобраться почитайте про ROW_NUMBER() и не только в документации эта функция нумерации выборки - сначала делается выборка from ... where, а потом результат нумеруется. соответственно вы не можете использовать эту функцию как условие where. ищите другой подход для вашей задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 17:58 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixмне нужно посчитать сумму всех значений столбца, у которых указано определенное значение другого столбца. но этот второй столбец в другой таблице читать про SUM (бонусом и за GROUP BY почитайте), JOIN, WHERE. "Чистый" SQL, чистая декларация. Никаких алгоритмов и циклов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 19:36 |
|
||
|
перейти к строке таблицы по номеру
|
|||
|---|---|---|---|
|
#18+
LanaRixмне нужно посчитать сумму всех значений столбца, у которых указано определенное значение другого столбца. но этот второй столбец в другой таблице как вариант - JOIN заменить на IN/EXISTS-подзапрос. Но про них тоже придется почитать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 19:37 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39832658&tid=1687602]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
98ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 304ms |
| total: | 500ms |

| 0 / 0 |
