<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="aliases">

  <title>Overview of Impala Aliases</title>
  <titlealts audience="PDF"><navtitle>Aliases</navtitle></titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="SQL"/>
      <data name="Category" value="Data Analysts"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Querying"/>
      <data name="Category" value="Tables"/>
      <data name="Category" value="Schemas"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      When you write the names of tables, columns, or column expressions in a query, you can assign an alias at the
      same time. Then you can specify the alias rather than the original name when making other references to the
      table or column in the same statement. You typically specify aliases that are shorter, easier to remember, or
      both than the original names. The aliases are printed in the query header, making them useful for
      self-documenting output.
    </p>

    <p>
      To set up an alias, add the <codeph>AS <varname>alias</varname></codeph> clause immediately after any table,
      column, or expression name in the <codeph>SELECT</codeph> list or <codeph>FROM</codeph> list of a query. The
      <codeph>AS</codeph> keyword is optional; you can also specify the alias immediately after the original name.
    </p>

<codeblock>-- Make the column headers of the result set easier to understand.
SELECT c1 AS name, c2 AS address, c3 AS phone FROM table_with_terse_columns;
SELECT SUM(ss_xyz_dollars_net) AS total_sales FROM table_with_cryptic_columns;
-- The alias can be a quoted string for extra readability.
SELECT c1 AS "Employee ID", c2 AS "Date of hire" FROM t1;
-- The AS keyword is optional.
SELECT c1 "Employee ID", c2 "Date of hire" FROM t1;

-- The table aliases assigned in the FROM clause can be used both earlier
-- in the query (the SELECT list) and later (the WHERE clause).
SELECT one.name, two.address, three.phone
  FROM census one, building_directory two, phonebook three
WHERE one.id = two.id and two.id = three.id;

-- The aliases c1 and c2 let the query handle columns with the same names from 2 joined tables.
-- The aliases t1 and t2 let the query abbreviate references to long or cryptically named tables.
SELECT t1.column_n AS c1, t2.column_n AS c2 FROM long_name_table AS t1, very_long_name_table2 AS t2
  WHERE c1 = c2;
SELECT t1.column_n c1, t2.column_n c2 FROM table1 t1, table2 t2
  WHERE c1 = c2;
</codeblock>

    <p rev="IMPALA-6415 IMPALA-5191">
      From Impala 3.0, the alias substitution logic has changed.
    </p>
    <p conref="../shared/impala_common.xml#common/column_aliases"/>

    <p>
      To use an alias name that matches one of the Impala reserved keywords (listed in
      <xref href="impala_reserved_words.xml#reserved_words"/>), surround the identifier with either single or
      double quotation marks, or <codeph>``</codeph> characters (backticks).
    </p>

    <p>
      <ph conref="../shared/impala_common.xml#common/aliases_vs_identifiers"/>
    </p>

    <p conref="../shared/impala_common.xml#common/complex_types_blurb"/>

    <p rev="2.3.0">
      Queries involving the complex types (<codeph>ARRAY</codeph>,
      <codeph>STRUCT</codeph>, and <codeph>MAP</codeph>), typically make
      extensive use of table aliases. These queries involve join clauses
      where the complex type column is treated as a joined table.
      To construct two-part or three-part qualified names for the
      complex column elements in the <codeph>FROM</codeph> list,
      sometimes it is syntactically required to construct a table
      alias for the complex column where it is referenced in the join clause.
      See <xref href="impala_complex_types.xml#complex_types"/> for details and examples.
    </p>

    <p>
      <b>Alternatives:</b>
    </p>

    <p conref="../shared/impala_common.xml#common/views_vs_identifiers"/>
  </conbody>
</concept>
