在sql CREATE VIEW语句中使用WITH关键字

时间:2014-10-05 22:54:09

标签: sql view psql create-table create-view

我在使用这个创建视图语句时遇到困难,该语句使用关键字WITH将表组合在一起。我正在使用plsql所以我可以使用WITH关键字,就好像我在Mysql中我不能。我想写的查询是

  

首先,编写一个返回所有人的人员ID(pid)的查询   谁不高于70英寸,不参加'大学   科罗拉多州(提示:uid!= 2)。然后,将该查询放在WITH子句中   并将其用作公共表表达式(CTE)来更新所有人   这使他们的大学现在成为'大学   科罗拉多”。

现在,当我在sql中运行查询时,我收到此错误。

  

错误:语法错误在或附近" SELECT"第3行:选择a.pid

这是我为此查询编写的代码,然后我将发布我使用的表。感谢您的帮助。

CREATE VIEW withclause2 AS

WITH cte(
    SELECT a.pid
    FROM what.person as a
    INNER JOIN what.university as b
    ON a.uid = b.uid
    WHERE a.uid != 2
)
SELECT cte.pid
FROM cte
INNER JOIN what.body_composition as c
ON c.pid=cte.pid
WHERE c.height > 70;

表格是

                Table "what.university"
     Column      |         Type          |                        Modifiers             
-----------------+-----------------------+--------------------------------------
 uid             | integer               | not null default 
 university_name | character varying(50) | 
 city            | character varying(50) | 


           Table "what.person"
 Column |         Type          |                      Modifiers                
--------+-----------------------+-----------------------------------------------
 pid    | integer               | not null default nextval('person_pid_seq'::regclass)
 uid    | integer               | 
 fname  | character varying(25) | not null
 lname  | character varying(25) | not null

 Table "what.body_composition"
 Column |  Type   | Modifiers 
--------+---------+-----------
 pid    | integer | not null
 height | integer | not null
 weight | integer | not null
 age    | integer | not null

0 个答案:

没有答案