Sqlite:SELECT*BUT id FROM Table

Cri*_*spy 7 sql sqlite select

我在表中有很多列,并希望SELECT * FROM Table除了一列(例如:位置),而不必列出我想要使用的所有列.

SELECT * EXCEPT id FROM Table???

Joh*_*Woo 9

绝对没有.

但这是一个解决方法.创建VIEW表格,例如

CREATE VIEW ViewName
AS
    SELECT col1, col2, col3, .... -- don't select the column name you want to hide
    FROM tableName;
Run Code Online (Sandbox Code Playgroud)

一旦VIEW创建,你现在可以调用它,

SELECT * FROM ViewName
Run Code Online (Sandbox Code Playgroud)


ang*_*son 5

不,你做不到.

列出您需要的那些,或者您接受结果集包含的列多于您需要的列.


use*_*816 5

一种粗略的方法,但是当出于某种原因需要时:

一个两步解决方案,我们首先创建查询文本来创建视图:

SELECT "CREATE TEMP VIEW my_view_1 AS SELECT " ||  (
SELECT 
    group_concat(name, ', ') 
FROM 
    pragma_table_info('my_table') 
WHERE 
    name != 'id') || 
" FROM my_table";
Run Code Online (Sandbox Code Playgroud)

然后执行结果来创建视图。

应该给出类似的东西:

CREATE TEMP VIEW test1 AS SELECT all, but, id, ... FROM my_table;
Run Code Online (Sandbox Code Playgroud)

一行即可轻松复制:

SELECT "CREATE TEMP VIEW my_view_1 AS SELECT " || (SELECT group_concat(name, ', ') FROM pragma_table_info('my_table') WHERE name != 'id') || " FROM my_table";