0

多くの列 (不明な番号) を持つテーブルを 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()か?

私が試したすべてがうまくいきませんでした。どうもありがとうございました。

4

1 に答える 1

1

列 Value のデータ型が数値の場合、コードはエラーを返します。列名または列を割り当てますか

于 2013-01-23T10:22:34.217 に答える