2016-11-30 62 views
0

存在我有以下查询,SQL查询来找到该值在源

select Vendor_ID, Descr, source, Name, Parent_Vendor_ID from VENDOR; 

数据:

VendorID  Descr Source name  Parent Vendor ID 
1234   ONLINE ABC  JACK  6666 
5689   OFFSHORE XYZ  SAM  5555 
9999   SHOP  TTT  EBAY  1234 
6666   ECOMMERCE FRE AMERICAS 

从上面的表中的数据5555中不供应商ID字段存在。所以我需要输出如下

VendorID Descr  Source name Parent Vendor ID EXIST 
1234  ONLINE  ABC  JACK 6666    Yes 
5689  OFFSHORE XYZ  SAM **5555    No** 
9999  SHOP  TTT  EBAY 1234    Yes 
6666  ECOMMERCE FRE AMERICAS  

我需要找到Parent_Vendor_ID是否存在于Field 1 Vendor_ID。如果存在,只需使用“是/否”列。如果是YES NO其他

输出应该是所有领域+ Parent_Vendor_ID_Exist

select Vendor_ID, Descr, source, Name, Parent_Vendor_ID,Parent_Vendor_ID Exist 

我想,如果别的,但它不是返回所有值。有人可以建议吗?

+1

添加一些示例表格数据和预期结果 - 以及格式化文本。 – jarlh

回答

1
select v1.Vendor_ID, v1.Descr, v1.source, v1.Name, v1.Parent_Vendor_ID, 
     case when v2.Vendor_ID is null 
      then 'NO' 
      else 'YES' 
     end as Parent_Vendor_ID_Exist 
from vendor v1 
left join vendor v2 on v1.Parent_Vendor_ID = v2.Vendor_ID 
+0

工作谢谢 –

0
SELECT v1.Vendor_ID 
    , v1.Descr 
    , v1.source 
    , v1.Name 
    , v1.Parent_Vendor_ID 
    , nvl2(v2.vendor_id,'Yes','No') as parent_exist 
    FROM VENDOR v1 
    LEFT OUTER JOIN vendor v2 
     ON (v1.parent_vandor_id = v2.vendor_id); 
+0

工作谢谢 –

0

试试这个..

SELECT Vendor_ID, Descr, source, Name, Parent_Vendor_ID, 
CASE 
    WHEN 
     EXISTS(SELECT Vendor_ID FROM VENDOR v2 WHERE v1.Parent_Vendor_ID = v2.Vendor_ID) 
    THEN 
     'Yes' 
    ELSE 
     'No' 
    END as "Parent_Vendor_ID Exist" 
FROM VENDOR v1; 

让我知道,如果这个工程。

+0

工作谢谢 –