2016-06-10 303 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列,我遇到了死衚衕。 –