2016-06-10 3 views
0

У меня есть файл в следующем формате BAIMTHP в нашей библиотеке.Извлечение данных DB2

Я хочу извлечь линии, связанные с 50K (для REF_NO 12345, ROW # 1,2 & 3. Для REF_ # 56789, ROW # 7,8,9 & 10). Проблема в том, что поле TAG не будет заполняться для всех строк, а ROW_NO будет заполняться. Я попробовал следующий SQL, но мне удалось извлечь только 1-ю строку поля 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', которые имеют хотя бы одну строку с тегом, равным '50K''. –

+0

Я проверю и вернусь, если я попаду в тупик, так как необходимо извлечь столбец ADDRESS. –

Смежные вопросы