使用 SUBSTR 分隔 SQLite 中的值

using SUBSTR to separate value in SQLite

我的数据库中有一列(此处称为 column1),其数据格式如下:“x/y/z”。我想创建一个只有 x 值的新列,我试过这个:

ALTER TABLE RECORDS
ADD COLUMN name_x TEXT;
SELECT column1, SUBSTR('column1','/',1) AS new_column FROM table;

新列不包含任何数据,而我希望每一行都有 x。

函数的第2个参数SUBSTR()是你想要return的子字符串的起始位置(在本例中是1),第3个参数是字符数returned.
因此,对于第二个参数,您必须使用函数 INSTR() 来定位 '/':

SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)

如果您已经创建了新列 institution,那么您必须更新 table 以填充新列:

UPDATE records
SET institution = SUBSTR(course_id, 1, INSTR(course_id, '/') - 1)

如果您的 SQLite 版本是 3.31+,您可以将新列创建为 generated column,如下所示:

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