정수를 리턴하는 사용자 정의 함수 (예 : myUDF(a,b)
)가 있습니다. 나는이 기능을 보장하기 위해 노력하고UDF의 결과 인 열의 where 절
는 한 번만 호출되며, 그 결과는 WHERE
절에 조건으로 사용할 수 있습니다
SELECT col1, col2, col3,
myUDF(col1,col2) AS X
From myTable
WHERE x>0
SQL 서버가 열로 x
를 감지하려고 시도하지만 정말입니다 계산 된 값의 별칭입니다.
UDF를 두 번 이상 실행하지 않고 계산 된 값에서 필터링을 수행 할 수 있도록이 쿼리를 다시 작성할 수 있습니까?
정확히 교차 적용이란 무엇입니까? – Gzim
@Gzim - 교차 적용은 파생 테이블과 상관 된 부속 조회 간의 혼합으로 생각하십시오. 결과적으로 쿼리 외부의 항목을 참조하는 하위 쿼리에 조인 할 수 있습니다. 필자의 예에서는 From 절에있는 다른 테이블의 col1과 col2를 참조합니다. 주제에 대한 또 다른 기사가 있습니다. http://www.sqlteam.com/article/using-cross-apply-in-sql-server-2005 – Thomas
오, 이런, 너무 강력합니다. 특히 테이블에서 (동시에) 삽입 W 선택하는 경우와 선택된 테이블의 매개 변수를 승인하는 테이블 UDF에서 복잡한 케이스가있는 경우. 고맙습니다 토마스. – Gzim