반응형
SQL 계산에서 별칭 사용
이 쿼리가 작동하지 않는 이유는 무엇입니까?
SELECT 10 AS my_num, my_num*5 AS another_number
FROM table
이 예에서는 다른 계산에서 my_num 별칭을 사용하려고합니다. 그 결과 알 수없는 "my_num"열이 생성됩니다.
이것은 제가하려는 작업의 단순화 된 버전이지만 기본적으로 별칭을 사용하여 다른 계산을하고 싶습니다. 내 계산은 훨씬 더 복잡하기 때문에 여러 번 다른 방식으로 반복하기 때문에 별칭을 지정하는 것이 좋습니다.
재사용 된 별칭을 (SELECT alias)
다음으로 감싸기 만하면됩니다 .
SELECT 10 AS my_num,
(SELECT my_num) * 5 AS another_number
FROM table
그런 방식으로 별칭을 사용하려면 하위 선택을 사용해야합니다.
SELECT my_num*5 AS another_number FROM
(
SELECT 10 AS my_num FROM table
) x
SQL의 별칭은 프로그래밍 언어의 변수와 다릅니다. 별칭은 특정 지점 (특히 GROUP BY
및 HAVING
절) 에서만 다시 참조 할 수 있습니다 . 그러나 SELECT
절 에서 별칭을 재사용 할 수 없습니다 . 따라서 기본적으로 열 이름을 바꾸거나 계산 된 열의 이름 을 지정할 수있는 파생 쿼리 (예 : Rubens Farias에서 제안 )를 사용할 수 있습니다.
또는 VIEW
공식이 일반적으로 고정 된 경우
CREATE VIEW table10 AS SELECT 10 AS my_num FROM table;
SELECT my_num * 5 AS another_number FROM table10;
파생 쿼리를 사용하는 것보다 약간 빠르다고 생각하지만 실제 쿼리에 많이 의존합니다.
또는 작업을 복제 할 수 있습니다.
SELECT 10 AS my_num, 10 * 5 AS another_number FROM table;
php / perl과 같이 편리 할 수 있습니다.
my $my_num = 10;
my $query = "SELECT $my_num AS my_num, $my_num * 5 AS another_number FROM table";
`` 또 다른 옵션은 APPLY 연산자를 사용하는 것입니다.
SELECT my_num, my_num*5 AS another_number
FROM table
CROSS APPLY
(SELECT 5 AS my_num) X
참고 URL : https://stackoverflow.com/questions/2077475/using-an-alias-in-sql-calculations
반응형
'development' 카테고리의 다른 글
여러 줄의 JSON으로 컬 (0) | 2020.12.10 |
---|---|
IntelliJ에서 불가능한 일이 Eclipse에서 가능합니까? (0) | 2020.12.10 |
Android에서 ListView 항목 제거 (0) | 2020.12.10 |
Google Maps API V3의 API 키는 무엇입니까? (0) | 2020.12.10 |
Dart를 사용하여 문자열을 숫자로 어떻게 구문 분석합니까? (0) | 2020.12.10 |