我收到語義錯誤,當我試圖運行此查詢,無法看到任何錯誤。我收到語義錯誤,當我試圖運行此查詢,無法看到任何錯誤
找到員工與最低工資的SSN
select ssn from employee
where salary < ALL
(select salary from employee);
我收到語義錯誤,當我試圖運行此查詢,無法看到任何錯誤。我收到語義錯誤,當我試圖運行此查詢,無法看到任何錯誤
找到員工與最低工資的SSN
select ssn from employee
where salary < ALL
(select salary from employee);
你想找到一個薪水,這比所有其他工資較低。這是行不通的,因爲最低工資本身就在表格中。當我們達到最低工資時,就可以將其與表格中的所有其他工資進行比較。但是比較<
時,我們將最低工資與自身進行比較時會失敗。
您需要將<
更改爲<=
。
SELECT ssn FROM employee
WHERE salary <= ALL (SELECT salary FROM employee);
這將返回具有最低工資的所有員工的ssn。等效地,
SELECT ssn FROM employee
WHERE salary = (SELECT MIN(salary) FROM employee);
@Bohemian:我不這麼認爲。謂詞是<= ALL,只有最小值可以小於或等於集合中的每個值。 –
@axblount:最後一個等價於'SELECT TOP 1 WITH TIES ssn FROM employee ORDER BY salary'(儘管我不太確定Access是否支持WITH TIES)。 –
哪個數據庫? –
「我收到語義錯誤」,太棒了!錯誤幫助我們知道發生了什麼....只要我們能夠看到它...... –
Heya @heyguys,歡迎來到SO!請更新您的問題以使其更清楚。把自己放在我們的鞋子裏:沒有任何語境,文字根本就沒有任何意義。請注意,您可以隨時編輯您的問題以改進它。 – Jeroen