My table looked like this:
CREATE TABLE "predictor_sets" (`id` INTEGER, `nvar` INTEGER, `predictors` TEXT, `experiment` TEXT, PRIMARY KEY(`id`));
Insert some sample data:
INSERT INTO predictor_sets VALUES (1659, 5, 'BO_bathymax,BO_calcite,BO_parmax,BO_damean,BO_sstrange', 'bathymetry'), (1660, 5, 'BO_bathymin,BO_calcite,BO_parmax,BO_damean,BO_sstrange', 'bathymetry'), (1661, 5, 'BO_bathymean,BO_calcite,BO_parmax,BO_damean,BO_sstrange', 'bathymetry');
Splitting up the different predictors in seperate rows can be done with the following recursive common table expression:
WITH RECURSIVE split(predictorset_id, predictor_name, rest) AS ( SELECT id, '', predictors || ',' FROM predictor_sets WHERE id UNION ALL SELECT predictorset_id, substr(rest, 0, instr(rest, ',')), substr(rest, instr(rest, ',')+1) FROM split WHERE rest <> '') SELECT predictorset_id, predictor_name FROM split WHERE predictor_name <> '' ORDER BY predictorset_id, predictor_name;
Check out the documentation for more info on writing your own common table expressions in SQLite, PostgreSQL or your favorite database.