"AS" 附近的语法错误

Syntax error near "AS"

我正在尝试执行以下语句,但收到一条错误消息

ERROR: syntax error at or near "AS"

下面是我的SQL声明

CREATE TEMPORARY TABLE IF NOT EXISTS temp_users 
AS 
(SELECT patient.patientid as patient 
 FROM patients 
 WHERE patient.name = "Ann");

我的 Postgres 版本是 9.5.6。我尝试了很多方法但都失败了。有谁知道这个的修复方法?

您 select 来自名为 patients 的 table,因此 patient.patientid 中对 patient 的引用无效,[=14 也是如此=](虽然我不知道为什么错误引用了 as,但它应该是“missing FROM-clause entry for table "patient"")

另外:字符串常量需要放在单引号中,而不是双引号。 select 两边的括号没用。

以下应该有效:

CREATE TEMPORARY TABLE IF NOT EXISTS temp_users 
AS 
SELECT p.patientid as patient 
FROM patients p
WHERE p.name = 'Ann';

在线示例:http://rextester.com/PVMT64289

在我的 postgres 中它正在工作。没有发现错误。

CREATE TEMPORARY TABLE IF NOT EXISTS temp_users 
AS (SELECT test.id as patient FROM test  WHERE test.name = 'Ann');