내가 잘 작동 다음 쿼리는 (나에서 다른 게시물을 참조) 때 경우에 의해 순서 "로 주문해야 할 때.하지 수에 "UPDATE의 SET WHERE"나는
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
;
을 동시에 I 단지 위의 질의에 의해 반환되는 단일 행의 값 (100)와 sys_annot 필드를 업데이트 지금 원하는, 즉 :. 내가 여기에, 그것이 작동하지 않는 종류의 도움을 시도간에
update BILL SET SYS_ANNOT=100
where ????
감사
오라클 * :
는 내 말은 당신이 좋아, 시작 부분에'를 허용합니다. 내가 아는 유일한 답은'target_table.primary_key IN (some sub query)'와 같은 것을 사용하여 임시 보관 테이블 또는 * (아래 답변에 있음)입니다. –
MatBailie
update BILL SET SYS_ANNOT=100 where ????
을 추가 할 수 있습니다. 다른 사투리는 'UPDATE x SET y = x FROM또한 '무엇이든지 시도하십시오'라고 말하면 실제로 시도한 것을 보여주십시오. '작동하지 않는다 '고 말할 때, 에러 메시지 (에러 메시지 포함), 예기치 않은 결과 (당신이 얻은 결과와 예상 한 결과)를 구체적으로 적어주십시오. – MatBailie