需要从包含大约一百列的表中检索键值对(列名,值)。
以下查询正是需要的。
With dummy AS (
Select 1 as Col1, 2 as Col2
)
SELECT
unnest(array['Col1', 'Col2']) AS "Column Name",
unnest(array[Col1, Col2]) AS "Value"
FROM dummy
但是,它需要明确指定列。
有没有办法通过根本不直接指定列名或动态生成来生成相同的输出。
需要从包含大约一百列的表中检索键值对(列名,值)。
以下查询正是需要的。
With dummy AS (
Select 1 as Col1, 2 as Col2
)
SELECT
unnest(array['Col1', 'Col2']) AS "Column Name",
unnest(array[Col1, Col2]) AS "Value"
FROM dummy
但是,它需要明确指定列。
有没有办法通过根本不直接指定列名或动态生成来生成相同的输出。
是的,在限度内。请参阅扩展crosstab
中的tablefunc
功能。
它不如真正的本地人CROSSTAB
或PIVOT
命令那么好,但它会完成这项工作。