0
У меня есть следующий запрос:Postgres передать более 100 аргументы функции CONCAT
SELECT
"external_id" AS EVENT_ID,
"uuid" AS EVENT_VERSION_ID,
"timestamp" AS EVENT_VERSION_TIMESTAMP,
CONCAT('{',
'"timestamp": ', COALESCE(timestamp, NULL), ',',
'"uuid": ', COALESCE("uuid", '"' || "uuid" || '"', 'null'), ',',
'"fraud": ', COALESCE("fraud",'true','false', NULL), ',',
'"score": ', COALESCE("score", NULL), ',',
'"scoreTracking": ', COALESCE("scoreTracking", NULL), ',',
'"domain": ', COALESCE("domain", '"' || "domain" || '"', NULL), ',',
'"event_occurred_at": ', COALESCE("event_occurred_at", NULL), ',',
'"event_received_at": ', COALESCE("event_received_at", NULL), ',',
'"event_type": ', COALESCE("event_type", '"' || "event_type" || '"', NULL), ',',
'"event_is_update": ', COALESCE("event_is_update",'true', 'false', NULL), ',',
'"transaction_id": ', COALESCE("transaction_id", '"' || "transaction_id" || '"', NULL), ',',
'"transaction_created_at": ', COALESCE("transaction_created_at", NULL), ',',
'"transaction_updated_at": ', COALESCE("transaction_updated_at", NULL), ',',
'"transaction_type": ', COALESCE("transaction_type", '"' || "transaction_type" || '"', NULL), ',',
.
.
.
.
.
186 fields to concat......) AS EVENT_FIELDS;
Однако, Postgres не позволяет мне пройти более 100 аргументов. Я проверил онлайн и нашел, что прочитал параметр «variadic». Однако я не уверен, как использовать его в этом контексте.
Большое спасибо заранее.
Можете ли вы 'CONCAT' 100 и' CONCAT' 86 затем CONCAT двух результатов? –
Кстати. Почему 'NULL' один из ваших аргументов« объединяется »? –
@Martin Я так не думаю, потому что я должен конкатрировать все поля в те же поля, что и EVENT_FIELDS. – Anusha