我想知道 postgres 是否有像
AS
这样的命令。有谁知道postges有这个能力吗?我试图用谷歌搜索它,但这是一个非常困难的问题:P 我想制作一个选择语句并将其存储为新的表名称。我想说的是:
SELECT subj, user AS 'new' FROM table_name;
CREATE TABLE new_table AS SELECT subj, user FROM table_name
那么,您的新桌子就准备好了。
“我想创建一条 select 语句并将其存储为新表名” --
CREATE VIEW view_name AS
SELECT subj, user AS "new" FROM table_name;
如果您不想在架构中留下任何更改,您可以执行以下操作 -
select new.* from (
select foo, bar from old
) as new
SELECT field AS new_field FROM table WHERE ...;
VIEW
并执行以下操作:CREATE OR REPLACE VIEW new_view AS <QUERY>;
以我的方式,您可以为字段创建别名并创建视图来存储它。它就像桌子一样。
从表名中选择主题、用户为新; 通过使用上面的查询可以获取 subj 和 new 作为字段。
并创建视图。
创建或替换 view_name 为 从 table_name 中选择新的主题、用户;
只需致电 选择视图名称;
在 PostgreSQL 中,您可以使用或不使用
AS
创建列或表的别名。
例如,您创建
person
表,然后向其中插入 2 行,如下所示:
CREATE TABLE person (
id INT,
first_name VARCHAR(20),
last_name VARCHAR(20)
);
INSERT INTO person (id, first_name, last_name)
VALUES (1, 'John', 'Smith'), (2, 'David', 'Miller');
现在,您可以分别创建带有或不带有
f_n
的l_n
和first_name
列的别名last_name
和AS
,如下所示:
SELECT id, first_name AS f_n, last_name l_n FROM person;
-- With `AS` -- Without `AS`
SELECT person.id, person.first_name AS f_n, person.last_name l_n FROM person;
-- With `AS` -- Without `AS`
然后,您可以得到以下结果:
id | f_n | l_n
----+-------+--------
1 | John | Smith
2 | David | Miller
(2 rows
并且,您可以分别创建带有或不带有
p
的 f_n
表、l_n
和 person
列的别名 first_name
、last_name
和 AS
,如下所示:
SELECT id, f_n, l_n, p.id, p.f_n, p.l_n FROM person AS p(id, f_n, l_n);
-- With `AS`
SELECT id, f_n, l_n, p.id, p.f_n, p.l_n FROM person p(id, f_n, l_n);
-- Without `AS`
然后,您可以得到以下结果:
id | f_n | l_n | id | f_n | l_n
----+-------+--------+----+-------+--------
1 | John | Smith | 1 | John | Smith
2 | David | Miller | 2 | David | Miller
(2 rows)