多くの列 (不明な番号) を持つテーブルを 4 列のテーブルにピボット解除しようとしました。
私のクエリは次のようになります。
INSERT INTO measurement (timestamp, sensor, value)
SELECT d."Timestamp",
( SELECT s.id FROM sensor s WHERE s.name = columns.column_name),
( SELECT columns.column_name from sensor_list where "Timestamp" = d."Timestamp")
FROM sensor_list d,
(SELECT column_name FROM information_schema.columns WHERE table_name = 'sensor_list' AND column_name <> 'Timestamp' ORDER BY ordinal_position) columns
これは機能しません。私が受け取るエラーメッセージは次のとおりです。
"ERROR: >>value<< has type numeric, but the expression is of type information_schema.sql_identifier"
"columns.column_name"
文字列などに変換することで機能する可能性はありますquote_ident()
か?
私が試したすべてがうまくいきませんでした。どうもありがとうございました。