Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT в качестве цикла. / 11 сообщений из 11, страница 1 из 1
21.01.2019, 16:05
    #39762431
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Добрый день!
Можно ли использовать SELECT в качестве некого цикла?
Т.е. выполнить различные действия столько раз, сколько строк в селекте?
К примеру в некоторых (кастомных) "ответвлениях" SQL есть конструкция SCAN, которая позволяет выполнять некие действия столько раз, сколько строк в выполненном селекте:

SCAN @query
SELECT MyColumn
FROM MyTable

execute{
.............
Выполняем некие действия
...........

}; --end scan @query



Надеюсь, что понятно объяснил))

Спасибо за помощь!
...
Рейтинг: 0 / 0
21.01.2019, 16:06
    #39762432
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Есть ли нечто подобное в MS SQL?
...
Рейтинг: 0 / 0
21.01.2019, 16:06
    #39762433
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Максим_78,

Курсоры?
...
Рейтинг: 0 / 0
21.01.2019, 16:45
    #39762455
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Максим_78Можно ли использовать SELECT в качестве некого цикла?
Т.е. выполнить различные действия столько раз, сколько строк в селекте?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function DoSomething(parameters)
Returns Boolean
As
-- Do Something
If Error Then
    Return False
Else
    Reutrn True
End Function

SELECT parameter fields, DoSomething(parameter fields) As Result
FROM TableName
...
Рейтинг: 0 / 0
21.01.2019, 16:58
    #39762462
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
TaPaKМаксим_78,

Курсоры?

Курсоры есть, но если вам надо делать такое на уровне БД, смотрbте SSIS foreach


https://www.youtube.com/results?search_query=SSIS+foreach+ado+enumerator+
...
Рейтинг: 0 / 0
22.01.2019, 10:49
    #39762674
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
TaPaK,
Да, видимо Вы правы, нужно через курсоры.
Предположу, что и решение SCAN о котором я упоминал также на курсорах построено.
Спасибо за совет!
...
Рейтинг: 0 / 0
22.01.2019, 10:50
    #39762675
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Уважаемые форумчане, спасибо за помощь!
...
Рейтинг: 0 / 0
22.01.2019, 11:32
    #39762698
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
А вот заполнять переменную можно без курсора :)

Код: sql
1.
2.
3.
4.
5.
6.
declare @x varchar(500)

set @x =''

select @x = @x+','+MyField
from ...



н-р удобно перечислить неск. телефонов или мейлов
...
Рейтинг: 0 / 0
22.01.2019, 14:37
    #39762859
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
Использовать декларативный язык для императивного программирования в 2019 году?..
...
Рейтинг: 0 / 0
22.01.2019, 15:43
    #39762921
Cammomile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
L_argoА вот заполнять переменную можно без курсора :)

Код: sql
1.
2.
3.
4.
5.
6.
declare @x varchar(500)

set @x =''

select @x = @x+','+MyField
from ...



н-р удобно перечислить неск. телефонов или мейлов
Не прошел код-ревью, переделывай.
...
Рейтинг: 0 / 0
22.01.2019, 19:19
    #39763067
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в качестве цикла.
L_argo,

так в старину писали.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT в качестве цикла. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]