我有一个查询
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
)
Run Code Online (Sandbox Code Playgroud)
子查询返回超过1行,我想插入第一个选中.我如何在DB2数据库中执行此操作?
请指教.
谢谢
添加FETCH FIRST ROW ONLY到您的子查询。fetch-first-clause在链接的页面上搜索以获取更多信息。这适用于 Linux/Unix/Windows 上的 DB2。
如果您使用的是大型机 (v9),那么您需要此页面以获取更多信息(或版本 10)。