2014-11-15 6 views
-1

조건 집합이 충족되거나 'N'으로 설정되면 열을 'Y'로 업데이트해야합니다. 나는 같은 쿼리에서 그것을하고 싶다. 예를 들어조건에 따라 값으로 값을 업데이트하는 방법 - Oracle

:

CREATE TABLE TAB1 (COL1 INT, COL2 INT); 

CREATE TABLE TAB2 (COL1 INT); 

INSERT INTO TAB1 VALUES(1, 3); 
INSERT INTO TAB1 VALUES(2, 3); 

INSERT INTO TAB2 VALUES(1); 

INSERT INTO TAB2 VALUES(1); 

내가 함께 TAB1의 COL2를 업데이트 할 'Y'TAB1.COL1는 TAB2.COL1과 일치하거나 COL2가 'N'으로 업데이트해야합니다. 이것은 물론 간단한 예제와 실제 요구 사항은 훨씬 더 복잡합니다.

+3

Col2는 정수입니다. 거기에 'Y'를 넣을 수 없습니다. 또한 'tab2.col1과 일치'는 약간 임의적입니다. 어느 대상과 일치시겠습니까? 또한 Tab1에 값을 삽입하면 Tab2의 행이 아직 삽입되지 않습니다. 모두 당신의 질문은 사양 수준에 약간의 차이가 있습니다. – GolezTrol

+0

예. 미안합니다. 사실 그것은 CHAR 열이어야합니다. –

답변

1

편집 : 내 대답이 0으로 수정되었습니다. 1과 같이 Y 및 N 가정

0

UPDATE TAB1 T1 
SET T1.COL2 = 
    CASE WHEN EXISTS(SELECT 1 FROM TAB2 T2 WHERE T2.COL1 = T1.COL1) THEN 1 
    ELSE 0 
    END; 

Here

가 SQLFiddle이다 (이 COL2 INT는 상기 이후).

+0

감사합니다 Shrinath는 제가 찾고있는 것입니다. –

+0

@Sabyasachi - 그 대답을 받아 들일 수 있습니까? :-) 감사! – Shrinath

+0

지연되어서 죄송합니다. –

관련 문제