在单独的SELECT语句中使用视图的列别名

时间:2018-02-08 10:13:01

标签: sql oracle select view alias

我创建了一个带有别名的列的视图,现在我想从单独的SELECT语句中使用此列上的MAX()函数,但我不知道如何。 (我一直在MAX()函数中写入“无效标识符”错误。)

CREATE OR REPLACE VIEW C17_AbfrageBView AS
SELECT p.PersonID, p.Vorname, p.Nachname,
       COUNT(DISTINCT f.FachID) "Fachanzahl" -- this column
FROM  ...
GROUP BY p.PersonID, p.Vorname, p.Nachname
ORDER BY 4;


SELECT PersonID, Vorname, Nachname,
       MAX(Fachanzahl) "Fachanzahl" -- right here
FROM C17_AbfrageBView
GROUP BY PersonID, Vorname, Nachname;

我也尝试过:

SELECT ..., MAX(COUNT(DISTINCT FachID)) "Fachanzahl"
FROM C17_AbfrageBView
...

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

视图C17_AbfrageBView有一个名为"Fachanzahl"的列(区分大小写,需要双引号),因此在查询视图时必须引用它。

您可以在SQL * Plus中描述视图(describe c17_abfragebview,或右键单击IDE中的名称)以确认可用列的列表。

区分大小写的名称很不方便,所以我强烈建议命名列Fachanzahl而不是"Fachanzahl"

答案 1 :(得分:-1)

你必须使用如下

SELECT PersonID, Vorname, Nachname,
       MAX([Fachanzahl]) "Fachanzahl" -- right here
FROM C17_AbfrageBView
GROUP BY PersonID, Vorname, Nachname;

使用[]

问候。