(2)(5)(8) Знаю два способа, только вот тексты запросов довольно громоздкие и работают эти способы когда агрегатно-конкатенируемые строки пронумерованы, а их число ограничено.
(9) Вот первый, более простой способ, рассчитанный на относительно небольшое число конкатенируемых строк. Если строки четыре, то запрос может иметь вид
ВЫБРАТЬ
МАКСИМУМ(ВЫБОР Дано.НомерСтроки
КОГДА 1
ТОГДА Дано.Подстрока
ИНАЧЕ ""
КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
КОГДА 2
ТОГДА Дано.Подстрока
ИНАЧЕ ""
КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
КОГДА 3
ТОГДА Дано.Подстрока
ИНАЧЕ ""
КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
КОГДА 4
ТОГДА Дано.Подстрока
ИНАЧЕ ""
КОНЕЦ) КАК Ответ
ИЗ
Дано КАК Дано
Показать
Прилагается обработка для проверки данного запроса и скриншот результата ее работы.
Я нашел в вычисляемых полях такой оператор:
Строка() - Если в качестве параметра передан массив, то функция возвращает строку, содержащую строковые представления всех элементов массива, разделенных символами "; ". Если в качестве параметра передана таблица значений, то функция возвращает строку, содержащую строковые представления всех строк таблицы значений, причем представления ячеек каждой строки разделяются символами "; ", а строки — смиволом перевода строки. Если у какого либо элемента строковое представление пустое, то вместо его представления выводится строка.
Но вот как мне ему передать массив? и то ли это...
Это если ты знаешь сколько строк надо объединить а если их от 2 до 200?
Кто-нибудь знает как пользоваться агрегатными функциями:
МАССИВ (ARRAY)
Функция возвращает массив, содержащий для каждой детальной записи значение параметра. Если выражение, указанное в параметре, содержит функциюМассив, то считается, что данное выражение является агрегатным. В качестве параметра для функции указывается выражение произвольного типа.
В качестве параметра может быть указано выражение, возвращающее таблицу значений. При этом результатом работы функции Массив будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра.
МАССИВ(КоличествоПредложений)
ТАБЛИЦАЗНАЧЕНИЙ (VALUETABLE)
Функция возвращает таблицу значений, содержащую столько колонок, сколько параметров у функции. Детальные записи получаются из наборов данных, которые нужны для получения всех полей, участвующих в выражениях параметров функции. Если выражение содержит функцию ТаблицаЗначений, то считается, что данное выражение является агрегатным.
У функции может быть один или несколько параметров произвольного типа. После каждого параметра может располагаться необязательное ключевое слово КАК и имя, которое будет назначено колонке таблицы значений.
СОЕДИНИТЬСТРОКИ (JOINSTRINGS)
Агрегатная функция, позволяющая объединять строки в одну строку.
Параметры:
● Значения, которые нужно объединить в одну строку. Если является массивом, то в строку будут объединяться элементы массива. Если является таблицей значений, то в строку будут объединяться все колонки и строки таблицы.
● Разделитель элементов. Строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк.
● Разделители колонок. Строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию «; »