.ALL Operator - Teradata Database

SQL Data Manipulation Language

Product
Teradata Database
Release Number
15.00
Language
English (United States)
Last Update
2018-09-28
dita:id
B035-1146
lifecycle
previous
Product Category
Teradata® Database

.ALL Operator

Purpose

For structured UDTs only, ALL specifies that the individual attribute values for a specified table or column name are to be returned.

Syntax  

where:

 

Syntax Element …

Specifies …

table_name

the name of a table for which all the attributes of all its structured UDT columns are to be returned.

column_name

the name of a structured UDT column for which all its attributes are to be returned.

.ALL

a keyword that signifies that all attributes for either the specified UDT column or all the structured UDT columns in the specified table are to be returned.

ANSI Compliance

.ALL is a Teradata extension to the ANSI SQL:2011 SQL standard.

.ALL Operator and Structured UDTs

If a column has a structured UDT data type, then the values of its individual attributes are returned when you specify the .ALL option.

If you specify the .ALL operator using either of these syntaxes, but there is no structured data type column in the specified table set, Teradata Database disregards the specification.

  • *.ALL
  • table_name.*.ALL
  • If you specify this syntax, but the specified column does not have a structured UDT type, the specification is disregarded:

         column_name.ALL

    See “Example 1: Using the .ALL Operator With Structured UDTs” on page 89.

    Example : Using the .ALL Operator With Structured UDTs

    Following UDT and table definitions for the *.ALL operator examples.

         CREATE TYPE school_record AS (
           school_name VARCHAR(20),
           GPA         FLOAT)
         INSTANTIABLE
         …
     
         CREATE TYPE college_record AS (
           school school_record,
           major  VARCHAR(20),
           minor  VARCHAR(20))
         INSTANTIABLE
         …
     
         CREATE TABLE student_record (
           student_id  INTEGER,
           Last_name   VARCHAR(20),
           First_name  VARCHAR(20),
           high_school school_record,
           college     college_record);

    Example 1a: Using *.ALL to Retrieve All Table Columns, Expanding the Structured Types

    This example shows a pair of SELECT statements that return equivalent response sets. The only difference is that one statement uses the *.ALL notation and the other does not.

    Use *.ALL to retrieve all columns of the table student_record where the structured type columns high_school and college are expanded:

         SELECT *.ALL
         FROM student_record;

    The following equivalent SELECT statement does not use the *.ALL notation:

         SELECT student_id, last_name, first_name, 
                high_school.school_name(), high_school.GPA(),   
                college.school().school_name(), college.school().GPA(),
                college.major(), college.minor()
         FROM student_record; 

    Example 1b: Using *.ALL to Retrieve the Expanded Structured Type for a Single UDT Column

    Use *.ALL to retrieve all columns of the table student_record where the structured type columns high_school and college are expanded:

         SELECT student_record.*.ALL;

    The following equivalent SELECT statement does not use the *.ALL notation:

         SELECT student_record.student_id, student_record.last_name,
                student_record.first_name, 
                student_record.high_school.school_name(),
                student_record.high_school.GPA(),
                student_record.college.school().school_name(),
                student_record.college.school().GPA(), 
                student_record.college.major(),
                student_record.college.minor();

    Example 1c: Using *.ALL to Retrieve the Expanded Structure Type for Multiple UDT Columns

    Retrieve high school names and grade point averages of all students:

         SELECT high_school.ALL
         FROM student_record;

    The following equivalent SELECT statement does not use the .ALL notation:

         SELECT high_school.school_name(), high_school.GPA()
         FROM student_record;

    Example 1d: Selecting the Information For Only One Student From a UDT

    Retrieve the college name, GPA, major, and minor of student 'Steven Smith':

         SELECT s.college.ALL
         FROM student_record s
         WHERE s.student.First_name() = 'Steven'
         AND   s.student.Last_name() = 'Smith';

    The following equivalent SELECT statement does not use the .ALL notation:

         SELECT s.college.school().school_name(), s.college.school().GPA(),
                s.college.major(), s.college.minor()
         FROM student_record s
         WHERE s.student.first_name() = 'Steven'
         AND   s.student.last_name() = 'Smith';