【发布时间】:2015-10-29 23:02:46
【问题描述】:
Here are the Oracle docs for what I'm trying to do。文档中的第三个示例是否可以在 Teradata 中使用?
我创建了一个 SQL fiddle 来显示我的问题。我只想选择 Corvette 第 7 代和 Mustang 第 1 代车辆的订单。这在 oracle 中运行良好,但是当我尝试从 Teradata 会话执行它时,它失败了
选择失败。 3707: 语法错误,预期类似于 'SELECT' 关键字或'('或'NONTEMPORAL'关键字或'('之间的'AS'关键字 和整数'120777'。
Oracle 11g R2 架构设置:
CREATE TABLE CAR_ORDERS
(
ORD_ID INTEGER NOT NULL,
MODEL_NAME VARCHAR2(20) NOT NULL,
GENERATION INTEGER NOT NULL,
BEGIN_YEAR INTEGER NOT NULL,
END_YEAR INTEGER NOT NULL
);
INSERT INTO CAR_ORDERS VALUES(1, 'CORVETTE', 1, 1953, 1962);
INSERT INTO CAR_ORDERS VALUES(2, 'CORVETTE', 1, 1953, 1962);
INSERT INTO CAR_ORDERS VALUES(3, 'CORVETTE', 1, 1953, 1962);
INSERT INTO CAR_ORDERS VALUES(4, 'CORVETTE', 1, 1953, 1962);
INSERT INTO CAR_ORDERS VALUES(5, 'CORVETTE', 2, 1963, 1967);
INSERT INTO CAR_ORDERS VALUES(6, 'CORVETTE', 3, 1968, 1982);
INSERT INTO CAR_ORDERS VALUES(7, 'CORVETTE', 4, 1984, 1996);
INSERT INTO CAR_ORDERS VALUES(8, 'CORVETTE', 5, 1997, 2004);
INSERT INTO CAR_ORDERS VALUES(9, 'CORVETTE', 6, 2005, 2013);
INSERT INTO CAR_ORDERS VALUES(10, 'CORVETTE', 6, 2005, 2013);
INSERT INTO CAR_ORDERS VALUES(11, 'CORVETTE', 7, 2014, 2016);
INSERT INTO CAR_ORDERS VALUES(12, 'CORVETTE', 7, 2014, 2016);
INSERT INTO CAR_ORDERS VALUES(13, 'CORVETTE', 7, 2014, 2016);
INSERT INTO CAR_ORDERS VALUES(14, 'CORVETTE', 7, 2014, 2016);
INSERT INTO CAR_ORDERS VALUES(15, 'MUSTANG', 1, 1964, 1973);
查询 1:
SELECT *
FROM CAR_ORDERS CO
WHERE (CO.MODEL_NAME, CO.GENERATION) IN (('CORVETTE', 7), ('MUSTANG', 1))
| ORD_ID | MODEL_NAME | GENERATION | BEGIN_YEAR | END_YEAR |
|--------|------------|------------|------------|----------|
| 11 | CORVETTE | 7 | 2014 | 2016 |
| 12 | CORVETTE | 7 | 2014 | 2016 |
| 13 | CORVETTE | 7 | 2014 | 2016 |
| 14 | CORVETTE | 7 | 2014 | 2016 |
| 15 | MUSTANG | 1 | 1964 | 1973 |
【问题讨论】: