2014-06-16 2 views
1

저는 Netezza에서 작업하고 있습니다. 아시다시피 웹 로그 분석 (nzsql)의 순수 데이터이지만 ANSI SQL 질문이라고 생각합니다. 질문은 아주 기본적인 것이고, 나는 그것을 찾는 방법조차 모른다.쿼리의 필드 앨리어싱

CREATE TEMPORARY TABLE DEMO1 AS SELECT 'SMORK' AS SMORK, 'PLONK' AS PLONK, 'SPROING' AS SPROING; 

SELECT SMORK AS PLONK, PLONK, SPROING AS CLUNK, CLUNK 
FROM DEMO1; 

이 쿼리는 아마도 나머지 미사일 별칭을 재사용 미세하지만 PLONK 별칭은 소스 테이블의 컬럼을 덮어 씁니다, 말을하는 것입니다 반환 'SMORK, PLONK, SPROING, SPROING'. 이제 원본 테이블의 열을 실제로 원한다면 SELECT SMORK을 PLONK, DEMO1.PLONK 등으로 작성할 수 있지만 앞에서 정의한 별칭을 선호하는 방법을 지정하는 방법을 모르겠습니다. SELECT 절.

누구나 방법을 알고 있습니까?

답변

1

네티에서는, 네티는 별칭 제 테이블 컬럼을 검색 할 것이다.

예 : 우리는 다음과 같은 문장이 있다고 가정 : 그것은

 
EMPLOYEE_ID FIRST_NAME LAST_NAME FULL_NAME  DESCRIPTION 
    1001  Alex  Smith  Smith, Alex My full name is :Alex J. Smith 

공지 사항 설명에 반환됩니다

CREATE TEMPORARY TABLE EMPLOYEES AS 
SELECT 1001 AS EMPLOYEE_ID 
     ,'Alex' AS FIRST_NAME 
     ,'Smith' AS LAST_NAME 
     ,'Alex J. Smith' AS FULL_NAME; 

SELECT 
    EMPLOYEE_ID 
    ,FIRST_NAME 
    ,LAST_NAME 
    ,LAST_NAME||', '||FIRST_NAME AS FULL_NAME 
    ,'My full name is :'||FULL_NAME AS DESCRIPTION 
    FROM EMPLOYEES; 

을의 FULL_NAME 값은 별칭에서하지, 테이블 열에서 선택됩니다 . 1.는 하위 쿼리를 만듭니다

단계 당신이 원하는 모든 열을 포함

당신이 별칭 FULL_NAME에서 설명 열 사용 가치를 원한다면, 당신은 두 단계로 그것을 할 수 있습니다. 재사용하려는 모든 별명 이름의 경우 FROM 절의 테이블 열에 이름이없는 이름으로 지정해야합니다.

2 단계 하위 쿼리에서 원하는 열만 선택하십시오.

CREATE TEMPORARY TABLE EMPLOYEES AS SELECT 1001 AS EMPLOYEE_ID, 'Alex' AS FIRST_NAME, 'Smith' AS LAST_NAME, 'Alex J. Smith' AS FULL_NAME; 

WITH EMPLOYESS_TMP AS (
SELECT 
    EMPLOYEE_ID 
    ,FIRST_NAME 
    ,LAST_NAME 
    ,LAST_NAME||', '||FIRST_NAME AS FULL_NAME2 
    ,FULL_NAME2 AS FULL_NAME 
    ,'My full name is :'||FULL_NAME2 AS DESCRIPTION 
    FROM EMPLOYEES) 
SELECT 
    EMPLOYEE_ID 
    ,FIRST_NAME 
    ,LAST_NAME 
    ,FULL_NAME 
    ,DESCRIPTION 
FROM EMPLOYESS_TMP; 

이 당신이 원하는 반환합니다

 
EMPLOYEE_ID FIRST_NAME LAST_NAME FULL_NAME  DESCRIPTION 
    1001  Alex  Smith Smith, Alex  My full name is :Smith, Alex 
0

열의 순서 만 바꾸면됩니다. Netezza는 별칭을 사용하여 열의 이름을 바꾸거나 주문을 변경합니다. 열 선택시

SELECT SMORK AS PLONK, PLONK, CLUNK, SPROING AS CLUNK 
FROM DEMO1;