在Netezza中,选择列时,
示例:假设我们有以下语句:
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;
它将返回
**EMPLOYEE_ID FIRST_NAME LAST_NAME FULL_NAME说明**
1001 Alex Smith Smith,Alex我的全名是:Alex J. Smith
注意,在 ,FULL_NAME值是从表列而不是别名中选择的。
如果要使DESCRIPTION列使用别名“ FULL_NAME”中的值,则可以分两个步骤进行操作:
创建一个包含所有想要的列的子查询。对于要重用的所有别名,您需要将其命名为FROM子句中任何表列中都不存在的名称。
仅从子查询中选择所需的列。
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说明**
1001 Alex Smith Smith,Alex我的全名是:Smith,Alex