我在表中有很多列,并希望SELECT * FROM Table除了一列(例如:位置),而不必列出我想要使用的所有列.
SELECT * EXCEPT id FROM Table???
绝对没有.
但这是一个解决方法.创建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)
一种粗略的方法,但是当出于某种原因需要时:
一个两步解决方案,我们首先创建查询文本来创建视图:
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";