使用SUBSTR分离SQLite中的值

使用SUBSTR分离SQLite中的值,sqlite,substr,Sqlite,Substr,我的数据库中有一列(这里称为column1),数据格式如下:“x/y/z”。我想用x值创建一个新列,我尝试了以下方法: ALTER TABLE RECORDS ADD COLUMN name_x TEXT; SELECT column1, SUBSTR('column1','/',1) AS new_column FROM table; 新列不包含任何数据,而我希望每行都有x 函数的第二个参数是要返回的子字符串的起始位置(在本例中为1),第三个参数是返回的字符数。 因此,对于第二个参数,您必须

我的数据库中有一列(这里称为column1),数据格式如下:“x/y/z”。我想用x值创建一个新列,我尝试了以下方法:

ALTER TABLE RECORDS
ADD COLUMN name_x TEXT;
SELECT column1, SUBSTR('column1','/',1) AS new_column FROM table;
新列不包含任何数据,而我希望每行都有x


函数的第二个参数是要返回的子字符串的起始位置(在本例中为1),第三个参数是返回的字符数。
因此,对于第二个参数,您必须使用函数来定位
“/”

SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)
如果您已经创建了新列
institution
,则必须更新表格以填充新列:

UPDATE records
SET institution = SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)
如果您的SQLite版本为3.31+,则可以创建新列,如下所示:

ALTER TABLE records ADD COLUMN institution TEXT 
GENERATED ALWAYS AS (SUBSTR(course_id, 1, INSTR(course_id, '/') - 1));

函数的第二个参数是要返回的子字符串的起始位置(在本例中为1),3d参数是返回的字符数。
因此,对于第二个参数,您必须使用函数来定位
“/”

SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)
如果您已经创建了新列
institution
,则必须更新表格以填充新列:

UPDATE records
SET institution = SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)
如果您的SQLite版本为3.31+,则可以创建新列,如下所示:

ALTER TABLE records ADD COLUMN institution TEXT 
GENERATED ALWAYS AS (SUBSTR(course_id, 1, INSTR(course_id, '/') - 1));