PostgreSQL中有`AS`的命令吗?

问题描述 投票:0回答:7

我想知道 postgres 是否有像

AS
这样的命令。有谁知道postges有这个能力吗?我试图用谷歌搜索它,但这是一个非常困难的问题:P 我想制作一个选择语句并将其存储为新的表名称。我想说的是:

SELECT subj, user AS 'new' FROM table_name;
sql database postgresql alias sql-as
7个回答
4
投票

是的。它是 PostgreSQL 中保留的SQL 关键字。请参阅链接文档页面上的表 C-1。

它通常与列标签一起使用。

AS 关键字是可选的,但前提是新列名不存在 匹配任何 PostgreSQL 关键字(参见附录 C)。


3
投票
CREATE TABLE new_table AS SELECT subj, user FROM table_name

那么,您的新桌子就准备好了。


2
投票

“我想创建一条 select 语句并将其存储为新表名” --

CREATE VIEW view_name AS
SELECT subj, user AS "new" FROM table_name;

1
投票

如果您不想在架构中留下任何更改,您可以执行以下操作 -

select new.* from (  
  select foo, bar from old  
) as new

1
投票
  1. 提出您的疑问:
    SELECT field AS new_field FROM table WHERE ...;
  2. 如果运行正常,复制它
  3. 转到
    VIEW
    并执行以下操作:
    CREATE OR REPLACE VIEW new_view AS <QUERY>;
  4. 保存视图并将其用作表格。
  5. 享受。

0
投票

以我的方式,您可以为字段创建别名并创建视图来存储它。它就像桌子一样。

从表名中选择主题、用户为新; 通过使用上面的查询可以获取 subj 和 new 作为字段。

并创建视图。

创建或替换 view_name 为 从 table_name 中选择新的主题、用户;

只需致电 选择视图名称;


0
投票

在 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)
© www.soinside.com 2019 - 2024. All rights reserved.