使用SQLite将分隔的数据从列提取到多行

时间:2018-03-29 21:23:23

标签: sql sqlite common-table-expression

我在SQLite数据库中有一列数据,表明该行中包含哪些传感器数据。问题是一次可以更新多个传感器,由|分隔而且没有保证的顺序。

我的表Data中包含的内容:

*-------*----------------------*
* RowID * Sensor               *
*-------*----------------------*
*    1  * 'EEG|Eyetracker|GSR' *
*    2  * 'Eyetracker|GSR'     *
*    3  * 'GSR|EEG'            *
*    4  * 'EEG|EyeTracker'     *
*-------*----------------------*

我想提取所有唯一的传感器名称,如下所示:

*------------*
* Sensor     *
*------------*
* EEG        *
* Eyetracker *
* GSR        *
*------------*

然后用一个带有外键的表替换单个Sensor列:

* -----------*------------*
* Sensor     * Data.RowID *
* -----------*------------*
* EEG        * 1          *
* Eyetracker * 1          *
* GSR        * 1          *
* EyeTracker * 2          *
* GSR        * 2          *
* GSR        * 3          *
* EEG        * 3          *
* EEG        * 4          *
* EyeTracker * 4          *
* -----------*------------*

我环顾四周,但this answerthis answer特定于SQL Server,而不是SQLite。 This answer 纯SQLite,但实际上并不是我想要的。

我认为这可能是CTE的一个用例,但我不知道如何使用CTE。

0 个答案:

没有答案