SQL вывод: одна строка и несколько столбцов
Пример: таблица пользователя SQL: выбрать * из предела jiuser 1
Теперь я нужно преобразовать вывод в формат ключ-значение, где я получу 2 столбца и несколько строк.
Я предлагаю вам рассмотреть варианты, описанные в этой статье: https://www.sqlshack.com/multiple-options-to-transposing-rows-into-columns/
Вы также можете рассмотреть возможность разработки табличной переменной и обновить ее с помощью курсора
DECLARE @tempTable TABLE (k varchar(200), v varchar(max)) INSERT INTO @tempTable SELECT C.name, '' FROM sys.objects O INNER JOIN sys.columns C ON O.object_id = C.object_id WHERE O.name = 'STOKLAR' AND O.type_desc = 'USER_TABLE' -- CURSOR , CAST AS VARCHAR AND UPDATE CODE HERE SELECT * FROM @tempTable
Если вы хотите отменить динамическую c, вы можете использовать для этого функции Postgres 'JSON:
select c.column_name, c.value from jiuser j cross join lateral jsonb_each_text(to_jsonb(j)) as t(column_name, value);
Вы можете использовать боковое соединение:
select v.* from t cross join lateral (values ('username', username), ('tenantid', tenantid::text), ('fullname', fullname) ) v(key, value);