2017-02-17 36 views
1

我试图执行下面的语句,我得到一个错误,说明语法错误附近的“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 0.6。我尝试了很多方法但失败了。有没有人知道这个问题的解决方法?

+1

括号不需要,可能是什么导致你的语法问题。 – jmelesky

+0

**陈述前有任何内容**吗? – Abelisto

回答

2

您是从一个名为patients所以在patient.patientid引用patient是无效的表,同为patient.name(虽然我不知道为什么错误引用as选择,它应该是“缺少FROM子句要放在单引号,不是双引号字符串常量,需要:条目表“病人”“)

也。围绕选择的括号是无用的。

下面应该工作:

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

0

在我的Postgres这是工作。找不到错误。

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