试图创建一个视图

时间:2014-08-27 11:30:38

标签: sql oracle

我正在尝试按如下方式创建视图:

CREATE OR REPLACE VIEW film_list
AS
SELECT 
    film.film_id AS FID, film.title AS title, film.description AS description, 
    category.name AS category, film.rental_rate AS price,
    film.length AS length, film.rating AS rating, 
    LISTAGG(actor.first_name ||'  '|| actor.last_name, ', ') WITHIN GROUP AS actors
FROM 
    category LEFT JOIN film_category ON category.category_id = film_category.category_id 
                 LEFT JOIN film ON film_category.film_id = film.film_id
                        JOIN film_actor ON film.film_id = film_actor.film_id
                        JOIN actor ON film_actor.actor_id = actor.actor_id
GROUP BY 
     film.film_id, film.title, film.description, category.name, 
     film.rental_rate, film.length,  film.rating;

它给出了以下错误:

Error at line 1
ORA-00906: missing left parenthesis

我没有看到任何正确的括号打开,你的帮助将不胜感激! 感谢

2 个答案:

答案 0 :(得分:3)

您收到错误:

LISTAGG(actor.first_name ||'  '|| actor.last_name, ', ') WITHIN GROUP AS actors

将其更改为:

LISTAGG(actor.first_name ||'  '|| actor.last_name, ', ') WITHIN GROUP  (ORDER BY actor.first_name) AS actors

答案 1 :(得分:1)

WITHIN GROUP有一个括号括起来的order by子句。见here