2016-06-10 299 views
0

我在我们的库中有一个名为BAIMTHP的波纹文件。DB2数据提取

我想提取相关的50K行(对于REF_NO 12345,行#1,2 & 3.对于REF_#56789,行#7,8,9 & 10)。问题在于TAG字段不会填充所有行,而是将填充ROW_NO。我尝试了下面的SQL,但是我只能提取TAG字段的第一行。在这种情况下ROW_NO 1和7

由于图像是不允许上传我的个人资料,我不得不输入样本文件的详细信息

TEF_NO  TAG   ROW_#  ADDRESS 
12345   50K   1    29/1 
12345      2    Ahamath Lane 
12345      3    Colombo 
56789   50K   7    No 11 
56789      8    17th Lane 
56789      9    Colpitty 
56789      10    Colombo 

有没有办法在DB2做到这一点?

CREATE TABLE QTEMP. TEST AS (SELECT * FROM EMOQRYLIB.BAIMTHP WHERE TAG = '50K') 

回答

0

我想你想要这样的:

CREATE TABLE QTEMP.TEST AS 
    SELECT * 
    FROM EMOQRYLIB.BAIMTHP b 
    WHERE EXISTS (SELECT 1 
        FROM EMOQRYLIB.BAIMTHP b2 
        WHERE b2.tef_no = b.tef_no AND b2.TAG = '50K' 
       ); 
+0

在波纹管会发生什么?难道它不会再给我提供TAG 50K的行吗? (SELECT 1 FROM EMOQRYLIB.BAIMTHP b2 WHERE b2.tef_no = b.tef_no AND b2.TAG ='50K'); –

+0

@ShabeenZarook。 。 。不,它会给你所有'tef_no's至少有一行标签等于'50K'。 –

+0

我会检查并恢复,如果我的要求是提取ADDRESS列,我遇到了死胡同。 –