다음 코드 : 오류가이 구문이 유효하지 않은 이유는 무엇입니까?
SELECT JaguarStartupTime, CPU, AmountOfRam, UpdatedOn, *
FROM dbo.MachineConfiguration
WHERE ServerName = 'WashingtonDC01'
AND UpdatedOn > '11/21/2012'
ORDER BY JaguarStartupTime DESC
결과 : Ambiguous column name 'JaguarStartupTime'
.
그러나 ORDER BY
을 제거하면 문제가 없습니다. 또한, 아래와 같이, 너무 작동하게 테이블로 ORDER BY
절을 접두어 :
SELECT JaguarStartupTime, CPU, AmountOfRam, UpdatedOn, *
FROM dbo.MachineConfiguration
WHERE ServerName = 'WashingtonDC01'
AND UpdatedOn > '11/21/2012'
ORDER BY dbo.MachineConfiguration.JaguarStartupTime DESC
이 나에게 의미하지 않는다. 누군가 설명 할 수 있습니까?
아아! 너 더 빨랐어! ;-) 내 대답을 지우고 +1. –
서버는 그것이 같은 열임을 알고 있습니다. 예를 들어 JaguarStartupTime을 WHERE 절에 추가하면 두 개의 동일한 열이 있음에도 불구하고 행복하게 필터링됩니다. – AngryHacker
@AngryHacker -'WHERE'는'FROM' 다음에'SELECT' 전에 처리됩니다. 'ORDER'는'SELECT' 다음에 발생합니다. (이 모든 주문은 "마치 같다"- 결과가 동일하면 엔진이 이러한 작업을 다시 주문할 수 있습니다.) –