質問には、何が達成される必要があるか不明確なあいまいな用語が使用されています。幸いにも、DB2はさまざまなSQLパターンを強力にサポートしています。
UPDATE
によって変更される行の数を制限するには:UPDATE
文はベーステーブル、それをフィルタリングだけで式を見たことがないので、あなたが行を更新するかを制御することができます
UPDATE
(SELECT t.column1 FROM someschema.sometable t WHERE ... FETCH FIRST ROW ONLY
)
SET column1 = 'newvalue';
を。新しい行の
INSERT
に限定数:
SELECT column1 FROM NEW TABLE (
UPDATE (SELECT column1 FROM someschema.sometable
WHERE ... FETCH FIRST ROW ONLY
)
SET column1 = 'newvalue'
) AS x;
SELECT
はデータを返します。
INSERT INTO mktg.offeredcoupons(cust_id, coupon_id, offered_on, expires_on)
SELECT c.cust_id, 1234, CURRENT TIMESTAMP, CURRENT TIMESTAMP + 30 DAYS
FROM mktg.customers c
LEFT OUTER JOIN mktg.offered_coupons o
ON o.cust_id = c.cust_id
WHERE ....
AND o.cust_id IS NULL
FETCH FIRST 1000 ROWS ONLY;
これは、DB2は
UPDATE
、
INSERT
、または
DELETE
の文から
SELECT
をサポートする方法であります変更された行のみ。
なぜ更新する行の主キーを含む 'WHERE'条件を追加しないのですか? –
私はあまりにも_random_、個々の行を更新して(それは本質的に)何かを疑うでしょう –
私のシナリオでは、要求に応じて1kのクーポンコードを送付しなければならないので、まだ与えられていないものを選択する必要があります。 –