2012-02-27 242 views
9

我有一个像DB2查询来选择第一行取出

UPDATE PRD_PRODUCT_L10N ppl 
SET (CATCHING_PHRASE 
    , GENERIC_NAME 
    , INGREDIENTS 
    , QUANTITY 
    , DOSE 
    , NUTRITION_FACTS 
    , PRODUCT_DESCRIPTION 
    , PROMOTION_MESSAGE 
    , MESSAGE 
    ) = (
    SELECT distinct CATCHING_PHRASE 
     , GENERIC_NAME 
     , INGREDIENTS 
     , QUANTITY 
     , DOSE 
     , NUTRITION_FACTS 
     , PRODUCT_DESCRIPTION 
     , PROMOTION_MESSAGE 
     , MESSAGE 
    FROM TEMP_UPLOAD_PRODUCT_ATTRIBUTES tupa 
    INNER JOIN 
      PRD_PRODUCT     pp 
     ON pp .EISIDENTIFIER = tupa.EISIDENTIFIER 
    WHERE ppl.PRODUCTGUID = pp.GUID 
     AND ppl.LOCALEGUID  = tupa.LOCALEGUID 
    ) 
WHERE EXISTS (
    SELECT 0 
    FROM TEMP_UPLOAD_PRODUCT_ATTRIBUTES tupa 
    INNER JOIN 
      PRD_PRODUCT     pp 
     ON pp .EISIDENTIFIER = tupa.EISIDENTIFIER 
    WHERE ppl.PRODUCTGUID = pp .GUID 
     AND ppl.LOCALEGUID  = tupa.LOCALEGUID 
    )  

子查询返回超过1行,我想插入选择的第一个查询。我如何在DB2数据库中做到这一点?

请指教。

感谢

回答

3

FETCH FIRST ROW ONLY添加到您的子查询中。在链接的页面上搜索fetch-first-clause了解更多信息。这是针对Linux/Unix/Windows上的DB2。

如果您使用的是Mainframe(v9),那么您需要this page以获得更多信息(或version 10)。