db2 requête pour sélectionner la première ligne récupérée
J'ai une requête comme
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
)
la sous-requête renvoie plus de 1 ligne et je voudrais insérer le premier sélectionné. Comment puis-je le faire dans la base de données DB2?
S'il vous plaît conseils.
Grâce
OriginalL'auteur beetri | 2012-02-27
Vous devez vous connecter pour publier un commentaire.
Selon votre DB2 version (je pense que 8 vers le haut) vous pouvez utiliser le chercher à votre sous-requête
(select * from table de chercher d'abord 1 lignes seulement)
http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.admin%2Ffrstnrw.htm
OriginalL'auteur Tadeu Maia
Ajouter
FETCH PREMIÈRE LIGNE UNIQUEMENT
à votre requête. Recherche pourfetch-first-clause
sur la page liée pour plus d'info. C'est pour DB2 sous Linux/Unix/Windows.Si vous êtes sur le Mainframe (v9), alors vous voulez cette page pour plus d'info (ou la version 10).
OriginalL'auteur bhamby