카테고리 없음

[SQL] 모호한 열 이름 : 특정 상황에서 모호한 이유는 무엇입니까?

행복을전해요 2021. 1. 25. 16:28

당신의 선택은, ON 가입 할 때마다이 오류를 얻을 것이다 WHERE, GROUP, 완전히 열을 필요하지 않은 HAVING 당신이 가입 한 것으로 그 이름을 가진 1 개 이상의 열이 있습니다.

ORDER BY 이름 예제는 ORDER BY를 사용하면 SELECT의 열 이름을 사용할 수 있기 때문에 작동합니다. 예를 들어 이것은 ORDER BY 에서는 작동 하지만 SQL 문의 다른 곳에서는 작동 하지 않습니다.

SELECT t1.ID, t1.Name AS [CrazyName]
FROM Table1 t1 
JOIN Table1 
  ON Table2 t2 (t2.ID = t1.ID) 
  ORDER BY [CrazyName]
  
-------------------

ORDER BY는 SQL 문에 대한 작업 순서의 마지막 단계로 처리됩니다. 더 나은 설명 http://www.bennadel.com/blog/70-SQL-Query-Order-of-Operations.htm참조 하십시오 .

SQL 문은 다음 순서로 처리됩니다.

  1. FROM 절
  2. WHERE 절
  3. GROUP BY 절
  4. HAVING 절
  5. SELECT 절
  6. ORDER BY 절

이것이 의미하는 바는 SELECT 문의 시간에 모호성이 해결되었으므로 ORDER BY 절이 SELECT 문을 참조한다는 것입니다. 그 전에 문이 모호하면 오류가 발생합니다.

-------------------

쿼리의 논리적 실행을 살펴보면 마지막 단계에서 ORDER BY us. 따라서 ORDER BY는 기본적으로 선택에있는 열 이름 / 별칭 이름을 사용합니다.

http://blog.sqlauthority.com/2009/04/06/sql-server-logical-query-processing-phases-order-of-statement-execution/



출처
https://stackoverflow.com/questions/22019877