![]() |
|
Archives of the TeradataForumMessage Posted: Mon, 11 Apr 2005 @ 20:55:15 GMT
Since V2R5 the "UNION ALL" has been enhanced to do the following: "................ from am R5 presentation: "......... Each SELECT in the set query must be from a base table. Each SELECT must include all PRIMARY INDEX columns in the same position of the SELECT list. Each set operation must be UNION ALL. I also found this in the doc, but haven't verified if this is still true at R5.1 or R6. ".......... Additionally if could use the CHECK CONSTRAINT operator on a column you could see benefits shown in the example below:
2nd quarter
CREATE TABLE order2 (
. . .
CHECK ((EXTRACT(MONTH FROM O_ORDERDATE) >=4) and
(EXTRACT(MONTH FROM O_ORDERDATE) <=6))
UNIQUE PRIMARY INDEX ( O_ORDERKEY );
3rd quarter
CREATE TABLE order3 (
. . .
CHECK ((EXTRACT(MONTH FROM O_ORDERDATE) >=7) and
(EXTRACT(MONTH FROM O_ORDERDATE) <=9))
UNIQUE PRIMARY INDEX ( O_ORDERKEY );
4th quarter
CREATE TABLE order4 (
. . .
CHECK ((EXTRACT(MONTH FROM O_ORDERDATE) >=10) and
(EXTRACT(MONTH FROM O_ORDERDATE) <=12))
UNIQUE PRIMARY INDEX ( O_ORDERKEY );
Ordertbl is a union view of all four quarters
CREATE VIEW ORDERTBL AS
SELECT * FROM ORDER1 UNION ALL SELECT * FROM ORDER2 UNION ALL
SELECT * FROM ORDER3 UNION ALL SELECT * FROM ORDER4;
SELECT * from ORDERTBL WHERE
EXTRACT (MONTH FROM O_ORDERDATE) >= 5 AND
EXTRACT (MONTH FROM O_ORDERDATE) <= 8 ;
This query, that selects orders made between May and August, only accesses Order2 and Order3 tables. Before Teradata Database V2R5.0, this would access all the tables
| ||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
| Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||