【问题标题】:SQLite Select data where the column name contains a string and create a table with those headers onlySQLite 选择列名包含字符串的数据并创建仅包含这些标题的表
【发布时间】:2020-07-17 19:31:38
【问题描述】:

根据这个问题的答案:
SQLite Select data where the column name contains a string?

我想知道如何使用从前一个表中获得的这些新列创建一个表。 我写了这样的东西(请忽略WHERE 声明):

CREATE TABLE new_table
AS(
SELECT name
FROM pragma_table_info("old_table")
WHERE name NOT LIKE '%\%%' ESCAPE '\'
FROM old_table
);  

但是,它不起作用。 在这个方向上的任何帮助将不胜感激。 非常感谢

【问题讨论】:

    标签: sql sqlite pragma


    【解决方案1】:

    如果你想要old_table 的所有列,那么你可以这样做:

    create table new_table as
    select * from old_table
    where 0;
    

    如果您需要特定的列,您必须在 select 列表中指定它们:

    create table new_table as
    select col1, col2, ... from old_table
    where 0;
    

    【讨论】:

    • 感谢@forpas,如果可能的话,我会避免写出我需要的列的所有列名,它们很多......我希望过滤它们。希望这是有道理的。
    • 您必须明确指定所需的所有列名。
    • 好的,我明白了,但是如果您有数百列怎么办?我应该只复制创建表语句并删除不需要的列吗?再次感谢@forpas!
    • 如果您的表中有数百列,那么您应该在创建另一个包含数百列的表之前重新考虑您的设计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2016-02-11
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2021-12-24
    相关资源
    最近更新 更多