我有一項任務是查詢我剛剛從使用 SQL YEAR() 函式的表中創建的視圖,以獲取假設雇員被雇用的日期(此資料庫中的所有資訊都是出于學術目的而創建的,而不是合法的資訊)。我能夠毫無問題地創建視圖,但是在創建后嘗試查詢視圖時只會給我錯誤。
創建視圖的表的片段:

CREATE VIEW HiresByYear AS
SELECT YEAR(hire_date), COUNT(employee_id)
FROM employees
GROUP BY YEAR(hire_date)
ORDER BY YEAR(hire_date) ASC;
這是我用來從上表創建視圖的查詢,它生成的視圖如下所示:

我的問題是如何根據視圖中的 YEAR(hire_date) 列進一步查詢此視圖?我試過這個查詢(我知道這不是查詢視圖的正確方法,但這是我試圖產生的最終目標):
SELECT *
FROM HiresByYear
WHERE YEAR(hire_date) = 1997;
以上只會導致錯誤,因為 SQL 無法找到 'hire_date' 列。有小費嗎?
為清楚起見進行編輯:我需要在創建視圖時使用 YEAR() 函式,我的最終目標是查看 1997 年具體雇傭了多少員工。
uj5u.com熱心網友回復:
您需要為您選擇的列分配別名。這些成為視圖中的列名。
CREATE VIEW HiresByYear AS
SELECT YEAR(hire_date) AS year, COUNT(employee_id) AS count
FROM employees
GROUP BY year
ORDER BY year ASC;
SELECT *
FROM HiresByYear
WHERE year = 1997;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/377403.html
