什么命令可以将column1和column2相对于内容进行合并,然后删除column2?另外,如果两列都包含内容,请考虑将column1的内容作为第一选择。这是关于SQLite的。请注意,这些是对数据库和列布局的永久更改,而不是SELECT的JOIN。
输入SQLite数据库:
|column1 | column2 |column_a|
|========|=========|========|
|"test" | |1 |
|"test2" |"test3" |2 |
| |"xxx" |3 |
伪代码:
列1 =列1+列2列2.删除()
下一个SQLite:
|column1 |column_a|
|========|========|
|"test" |1 |
|"test2" |2 |
|"xxx" |3 |
3条答案
按热度按时间nhaq1z211#
这种类型的工作需要在几个步骤中完成。
1.使用来自@Tim Biegeleisen的查询创建一个新表。例如
tab_dev
(为了安全起见,应该先使用CREATE TABLE
,然后使用INSERT INTO
,以确保列类型、约束条件......等都是按照规范创建的)。此时,您应该有旧版本
tab_prod
和新版本tab_dev
。在继续下一步之前,请根据旧表仔细检查新表。1.首先将旧表重命名为某个备份表(此时不要删除它)。
1.现在旧版本表的名称可用,因此将新版本
tab_dev
重命名为tab_prod
。1.如果一切按计划进行,请仔细检查和验证
tab_prod
中的数据。根据需要删除备份表tab_prod_backup
。ruarlubt2#
我们可以在这里使用
COALESCE()
:2guxujil3#
假设表名为
myTable
。下面是您的问题的DDL:假设问题是关于
UPDATE
,后面跟着SELECT
。看起来我们希望将column2
复制到column1
中,以便只填充NULL
的值。非NULL值可以保持原样。那么,随后的SELECT
语句似乎只对column1
和column_a
感兴趣,因此我们可以从SELECT
:上面的一些假设可能不正确。例如,问题可能是不允许源表使用
UPDATE
。对于它,所需的SELECT
语句将更加复杂。然后是SQLite
版本问题,因为不同的版本具有不同的功能,如IFF
。此外,不清楚是否需要删除column2
。为此,需要使用SQLite
的更高版本来修改现有表,否则,我们必须删除column2
,重新创建表。