简体   繁体   English

从 sqlite 中的 select 查询创建表并分配表名

[英]create table and assign table names from a select query in sqlite

I have a select query that returns a single column.我有一个返回单列的 select 查询。 Is there a way in sqlite to create a new table using the results as column names?在 sqlite 中有没有办法使用结果作为列名创建一个新表?

I tried this but it did not work.我试过了,但没有用。

CREATE TABLE newTable (SELECT nameCol FROM oldTable);

SQLite does not support dynamic SQL so this is not possible. SQLite 不支持动态 SQL 所以这是不可能的。

The best that you can do is construct the SQL statement that you can use to create the table by using your preferred programming language:您可以做的最好的事情是构造 SQL 语句,您可以使用您喜欢的编程语言来创建表:

SELECT 'CREATE TABLE newTable (' ||
       (SELECT GROUP_CONCAT(nameCol) FROM oldTable) ||
       ');' AS sql;

The above query returns 1 row with 1 column with a string like:上面的查询返回 1 行 1 列,字符串如下:

CREATE TABLE newTable (column1,column2,column3);

See a simplified demo .查看简化的演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM