我可以通过引用另一个表中的列来设置我的列名吗?

时间:2015-11-04 11:36:49

标签: sqlite pivot dynamic-sql

我在我的覆盆子pi上使用SQLITE3,我有两个表(视图),它们的架构都在下面:

CREATE VIEW [PivotTemps1hr] AS
SELECT timeslot,strftime('%Y-%m-%d.%H:%M:%S',timeslot,'localtime'),
AVG(CASE WHEN sensor_id = '28-000005e31c72' THEN value END) AS Server_Cab,
AVG(CASE WHEN sensor_id = '28-000005ea2eea' THEN value END) AS Study,
AVG(CASE WHEN sensor_id = '28-000005eb3986' THEN value END) AS Master_Bed,
FROM TempsSlot1hr JOIN sensors USING (sensor_id, sensor_id)
GROUP BY timeslot;

CREATE TABLE sensors (sensor_id text,sensor_name text);

请参阅上文,在我的PivotTemps1hr表中,我对字段名称进行了硬编码,例如: Server_Cab Study

我想知道我可以通过从传感器表中读取名为 sensor_name 的字段(两个表之间是否存在连接)以某种方式使其动态化?这样,如果我将传感器从一个房间移动到另一个房间,我只需要更新传感器表,一切都会自动更新。

1 个答案:

答案 0 :(得分:0)

SQLite是一个嵌入式数据库,旨在从“真正的”编程语言中使用。 因此,它没有用于创建动态SQL命令的机制。

您必须从SQLite外部重新创建视图。