【发布时间】:2023-03-16 09:25:01
【问题描述】:
我在 Teradata 15.10.03.01 中面临以下问题。这是关于逗号分隔的列比较。考虑下面提到的数据和预期结果。
CREATE MULTISET TABLE TESTDB.TESTTABLE1 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
A VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC,
B VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC,
C VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( A );
CREATE MULTISET TABLE TESTDB.TESTTABLE2 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
A VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC,
B VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC,
C VARCHAR(250) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( A );
INSERT INTO TESTDB.TESTTABLE1 VALUES('A1','B1','C1');
INSERT INTO TESTDB.TESTTABLE1 VALUES('A2','B2','C2');
INSERT INTO TESTDB.TESTTABLE1 VALUES('A3',NULL,'C3');
INSERT INTO TESTDB.TESTTABLE1 VALUES('A4',NULL,'C4');
INSERT INTO TESTDB.TESTTABLE1 VALUES(NULL,'B5','C5');
INSERT INTO TESTDB.TESTTABLE1 VALUES(NULL,'B6','C6');
INSERT INTO TESTDB.TESTTABLE1 VALUES(NULL,NULL,'C7');
INSERT INTO TESTDB.TESTTABLE1 VALUES(NULL,NULL,'C8');
INSERT INTO TESTDB.TESTTABLE2 VALUES('A1','B1','C1');
INSERT INTO TESTDB.TESTTABLE2 VALUES('A3',NULL,'C3');
INSERT INTO TESTDB.TESTTABLE2 VALUES(NULL,'B5','C5');
INSERT INTO TESTDB.TESTTABLE2 VALUES(NULL,NULL,'C7');
SELECT * FROM TESTDB.TESTTABLE1;
A B C
-------------
A1 B1 C1
A2 B2 C2
A3 C3
A4 C4
B5 C5
B6 C6
C7
C8
SELECT * FROM TESTDB.TESTTABLE2;
A B C
------------
A1 B1 C1
A3 C3
B5 C5
C7
预期结果:
A B C
-------------
A2 B2 C2
A4 C3
B6 C6
我尝试了以下查询,但它没有返回任何记录。
SELECT T1.A,T1.B,T1.C
FROM TESTDB.TESTTABLE1 T1
WHERE (T1.A,T1.B)
NOT IN
(
SELECT T2.A,T2.B
FROM TESTDB.TESTTABLE2 T2
)
;
如何构建查询?
为什么我的查询没有返回任何记录?
【问题讨论】:
-
(这个问题的大部分呈现为一个单一的代码块,
below issue不滚动不明显。请花时间了解How to ask a good question。)