如何在SQLite3命令行中将字符串拆分为新列?

用户名

我正在使用以下.sql脚本在SQLite3中构造一个简单表:

drop table if exists projects;

CREATE TABLE projects(
  "project_number" TEXT,
  "project_manager" TEXT
);

insert into projects ("project_manager", "project_number")
values ("Bob", "11204568-001");
insert into projects ("project_manager", "project_number")
values ("Bill", "11204568-002");
insert into projects ("project_manager", "project_number")
values ("Jack", "11204568-003");
insert into projects ("project_manager", "project_number")
values ("Jill", "11204000");
insert into projects ("project_manager", "project_number")
values ("Fred", "11204569");
insert into projects ("project_manager", "project_number")
values ("Nancy", "11204569-003");

然后,我main_project_number使用以下alter table语句向该表添加一列

alter table projects add column "main_project_number" integer;

然后,我想仅使用的前缀填充此新列project_number_column,以便得到如下结果:

project_number        project_manager  main_project_number
--------------------  ---------------  -------------------
11204568-001          Bob              11204568
11204568-002          Bill             11204568
11204568-003          Jack             11204568
11204000              Jill             11204000
11204569              Fred             11204569
11204569-003          Nancy            11204569

于是,我尝试过的update一些SQLite的字符串函数语句定义在这里

update projects set main_project_number = (select substr("project_number", 0, instr("project_number", "-")) from projects);

这产生了以下结果,但是,这不是我想要的...:

project_number        project_manager  main_project_number
--------------------  ---------------  -------------------
11204568-001          Bob              11204568
11204568-002          Bill             11204568
11204568-003          Jack             11204568
11204000              Jill             11204568
11204569              Fred             11204568
11204569-003          Nancy            11204568

我在这里做错了什么?

卢卡斯·索兹达(Lukasz Szozda)

更新应参考特定行:

update projects 
set main_project_number = 
    CASE WHEN instr("project_number", "-") > 0 
         THEN substr("project_number", 0, instr("project_number", "-"))
         ELSE "project_number"
    END

db <> fiddle演示


如果您使用的是SQLite 3.31.0及更高版本,我建议使用生成的列以避免运行更新。

ALTER TABLE projects
ADD COLUMN main_project_number TEXT GENERATED ALWAYS AS
  (CASE WHEN instr("project_number", "-") > 0 
             THEN substr("project_number", 0, instr("project_number", "-"))
             ELSE "project_number"
        END) VIRTUAL;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中将字符串拆分为列

来自分类Dev

如何在bash中将字符串拆分为列

来自分类Dev

如何在Java中将字符串从3维数组拆分为新的2维数组

来自分类Dev

将字符串拆分为数组,然后使用命令行在新行上打印每个元素

来自分类Dev

如何在Snowflake中将字符串拆分为字符?

来自分类Dev

如何在R中将字符串变量解析或拆分为多个新变量

来自分类Dev

如何在R中将字符串拆分为alist()?

来自分类Dev

如何在MATLAB中将字符串拆分为字母?

来自分类Dev

如何在bash中将字符串拆分为数组

来自分类Dev

如何在 Python 中将字符串拆分为列表?

来自分类Dev

关于如何在Swift中将字符串拆分为所需字符串数组的问题

来自分类Dev

如何在PHP中将单词字符串拆分为单独的字符串变量?

来自分类Dev

如何避免字符串在命令行中的每个空格上拆分

来自分类Dev

您如何从命令行参数中拆分字符串?-Java

来自分类Dev

javascript:如何使用空格拆分此命令行字符串但 args 包含空格

来自分类Dev

如何在sqlite3命令行调用中指定PRAGMA?

来自分类Dev

如何在PostgreSQL的选择查询中将表的列字段值中的字符串拆分为多行

来自分类Dev

如何在Python中将字符串拆分为单词和特殊字符?

来自分类Dev

如何在python中将字符串拆分为每个部分仅包含相同字符的部分

来自分类Dev

如何使用C#在Python中将字符串作为命令行参数传递

来自分类Dev

如何使用C#在Python中将字符串作为命令行参数传递

来自分类Dev

在Pandas中将元组中的字符串拆分为列

来自分类Dev

在熊猫中将字符串拆分为单独的列

来自分类Dev

在SQL Server中将字符串拆分为列

来自分类Dev

在python中将字符串拆分为不同的列

来自分类Dev

将列内的字符串拆分为新列

来自分类Dev

如何在保留R中的其他列的同时将字符串拆分为新行

来自分类Dev

如何在python中将字符串拆分为多个部分?

来自分类Dev

如何在python中将字节字符串拆分为单独的字节

Related 相关文章

  1. 1

    如何在Java中将字符串拆分为列

  2. 2

    如何在bash中将字符串拆分为列

  3. 3

    如何在Java中将字符串从3维数组拆分为新的2维数组

  4. 4

    将字符串拆分为数组,然后使用命令行在新行上打印每个元素

  5. 5

    如何在Snowflake中将字符串拆分为字符?

  6. 6

    如何在R中将字符串变量解析或拆分为多个新变量

  7. 7

    如何在R中将字符串拆分为alist()?

  8. 8

    如何在MATLAB中将字符串拆分为字母?

  9. 9

    如何在bash中将字符串拆分为数组

  10. 10

    如何在 Python 中将字符串拆分为列表?

  11. 11

    关于如何在Swift中将字符串拆分为所需字符串数组的问题

  12. 12

    如何在PHP中将单词字符串拆分为单独的字符串变量?

  13. 13

    如何避免字符串在命令行中的每个空格上拆分

  14. 14

    您如何从命令行参数中拆分字符串?-Java

  15. 15

    javascript:如何使用空格拆分此命令行字符串但 args 包含空格

  16. 16

    如何在sqlite3命令行调用中指定PRAGMA?

  17. 17

    如何在PostgreSQL的选择查询中将表的列字段值中的字符串拆分为多行

  18. 18

    如何在Python中将字符串拆分为单词和特殊字符?

  19. 19

    如何在python中将字符串拆分为每个部分仅包含相同字符的部分

  20. 20

    如何使用C#在Python中将字符串作为命令行参数传递

  21. 21

    如何使用C#在Python中将字符串作为命令行参数传递

  22. 22

    在Pandas中将元组中的字符串拆分为列

  23. 23

    在熊猫中将字符串拆分为单独的列

  24. 24

    在SQL Server中将字符串拆分为列

  25. 25

    在python中将字符串拆分为不同的列

  26. 26

    将列内的字符串拆分为新列

  27. 27

    如何在保留R中的其他列的同时将字符串拆分为新行

  28. 28

    如何在python中将字符串拆分为多个部分?

  29. 29

    如何在python中将字节字符串拆分为单独的字节

热门标签

归档