sql에서 별칭에 관한 의심과 질문이 있습니다. 동일한 쿼리에서 별칭을 사용하려면 사용할 수 있습니다. 예를 들어 : 쿼리에서 별칭 사용 및 사용
select (a/b) as temp , temp/5 from xyz
어떤 식 으로든이 가능 열 a와 b로 테이블 이름 XYZ을 고려?
sql에서 별칭에 관한 의심과 질문이 있습니다. 동일한 쿼리에서 별칭을 사용하려면 사용할 수 있습니다. 예를 들어 : 쿼리에서 별칭 사용 및 사용
select (a/b) as temp , temp/5 from xyz
어떤 식 으로든이 가능 열 a와 b로 테이블 이름 XYZ을 고려?
쿼리의 식에 식별자를 부여한 다음 해당 식별자를 쿼리의 다른 부분에서 다시 사용하는 것에 대해 이야기하고 있습니까?
거의 모든 SQL 환경이 제한되는 Microsoft SQL Server에서는 불가능합니다. 하지만 다음과 같이 할 수 있습니다.
SELECT temp, temp/5
FROM (
SELECT (a/b) AS temp
FROM xyz
) AS T1
분명히 그 예가 특히 유용하지는 않지만, 여러 장소에서 표현식을 사용했다면 더 유용 할 수 있습니다. 표현식이 길어서 GROUP BY 절을 사용하면 표현식을 다시 표현해야하므로 표현식이 길면 쉽게 그룹화 할 수 있습니다.
MSSQL에서 쿼리가 아닌 테이블 스키마에 지정된 계산 된 열을 만들 수도 있습니다.
W3Schools "SQL Alias"이 도움이 될 수 있습니다. 쿼리에 더 별칭을 사용하여 당신이 할 수 있습니다 사용중인 데이터베이스에 따라 관련하여
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p.LastName='Hansen' AND p.FirstName='Ola'
: 여기
은 자신의 튜토리얼에서 예이다.동일한 SELECT
절에서 SQL 제품이 표준 SQL-92 엔트리 레벨과 호환된다고 가정 할 수 없습니다.
SELECT
절에있는 표현식 (및 해당 상관 관계 이름)은 '한 번에'존재합니다. 당신이 바라는 것처럼 보이는 왼쪽에서 오른쪽으로의 평가는 없습니다.
여기 @Josh Einstein의 답변에 따라 해결 방법으로 파생 테이블을 사용할 수 있습니다. 'temp'보다 의미있는 이름을 사용하고 temp/5
표현을 제공하면됩니다. 상속받을 사람을 염두에 두십시오. 암호).
게시 한 코드는 MS Access 데이터베이스 엔진에서 작동하며 두 번째 표현식에 Expr1
과 같은 의미없는 상관 관계 이름을 지정하지만 실제 SQL 제품은 아닙니다.
Oracle with
문도 사용할 수 있습니다. 다른 DB에서도 비슷한 문장을 사용할 수 있습니다. 다음은 오라클에 사용되는 것입니다.
with t
as (select a/b as temp
from xyz)
select temp, temp/5
from t
/
이 the WITH
statement 한 번만 평가 및 후속 문에서 사용되기 때문에이 여러 중첩 된 쿼리를 포함하는 복잡한 쿼리를 가질 경우 특히 성능 이점이있다.
가능한 것 같아요 그것 :
SELECT (A/B) as temp, (temp/5)
FROM xyz,
(SELECT numerator_field as A, Denominator_field as B FROM xyz),
(SELECT (numerator_field/denominator_field) as temp FROM xyz);
+1. 좋은 지적. – Guru