は私が(私からの他の記事を参照)は正常に動作し、次のクエリを持っているとき場合によって順序」と注文する必要があり、「UPDATEのSET」。私は同時に私は
SELECT sys_annot from (
SELECT SYS_ANNOT, row_number() over (order by case when prep_seq_num = 0 then 1 else 2 end) as rn
FROM BILL
WHERE BIMA_TRACKING_ID = 10
AND BSCO_CODE_ID = 'PINGPONG'
AND PARTITION_KEY = '06-DEC-17'
AND SUBPARTITION_KEY = 84
AND
(
( PREP_SEQ_NUM = 0
AND ITEM_CAT_CODE_ID=1
AND PRIMARY_IND=0
AND CHRG_ACCT_ID = 1
AND SYS_ANNOT <> 0
)
OR
(PREP_SEQ_NUM <> 0
AND ITEM_CAT_CODE_ID in ('5', '-100')
AND PRIMARY_IND=1
)
)
)
where rn=1
;
にできませんのみ上記のクエリによって返された一列に値100を持つsys_annotフィールドを更新するために、今したい、それは次のようになります。私はここで、それが動作しない、あなたの種類の助けをしてみてくださいどのような
update BILL SET SYS_ANNOT=100
where ????
おかげ
オラクル*:
は、私は何を意味することは、同様に、初めに 'が可能です。私が知っている唯一の答えは、 'target_table.primary_key IN(いくつかのサブクエリ)'のようなものを使って、一時的にテーブルを保持するか、*(以下の答えにある)*です。 –
MatBailie
update BILL SET SYS_ANNOT=100 where ????
を追加することができます。 他の方言では、さまざまな見方で 'UPDATE x SET y = x FROMまた、「何でも試してみてください」と言ったら、実際に試したことを示してください。 '動作しない 'と言うときは、エラーメッセージ(エラーメッセージを含む)、予期しない結果(得られた結果と期待した結果)を特定してください。 – MatBailie