Преобразовать SQL вывод одной строки в несколько столбцов в два столбца (ключ, значение) и вывод в несколько строк - PullRequest
0 голосов
/ 26 марта 2020

SQL вывод: одна строка и несколько столбцов

Пример: таблица пользователя SQL: выбрать * из предела jiuser 1 Output

Теперь я нужно преобразовать вывод в формат ключ-значение, где я получу 2 столбца и несколько строк.

enter image description here

Ответы [ 3 ]

0 голосов
/ 26 марта 2020

Я предлагаю вам рассмотреть варианты, описанные в этой статье: 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
0 голосов
/ 26 марта 2020

Если вы хотите отменить динамическую 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);
0 голосов
/ 26 марта 2020

Вы можете использовать боковое соединение:

select v.*
from t cross join lateral
     (values ('username', username),
             ('tenantid', tenantid::text),
             ('fullname', fullname)
     ) v(key, value);
...