2017-02-24 1 views
-1

조건을 정의하기 위해 다른 테이블에 가입하는 동안 PROC SQL을 사용하여 필드를 업데이트하려면 어떻게해야합니까? 두 번째 테이블에서 다른 필드를 사용하여 필드를 업데이트하고 싶지 않습니다. "Small"이라는 단어로 필드를 업데이트하려고합니다. 나는이 구문을 사용했는데 동작하지 않습니다 : 당신이 다른 테이블의 컬럼과 테이블을 업데이트하고 싶다면,Proc SQL 업데이트

PROC SQL; 
UPDATE GROUP A 
SET SEGMENT = 
(SELECT 'SMALL' 
FROM SMALL_GROUP_REPORT B 
WHERE A.NUMBER = B.NUMBER); 

답변

1

다음 따옴표 싶지 않을 것이다 :

PROC SQL; 
    UPDATE GROUP A 
     SET SEGMENT = (SELECT SMALL 
         FROM SMALL_GROUP_REPORT B 
         WHERE A.NUMBER = B.NUMBER 
        ); 

을 하지만 다른 테이블에 행이있을 때 세그먼트가 'SMALL'이 될 것 같습니다 :

PROC SQL; 
    UPDATE GROUP A 
     SET SEGMENT = 'SMALL' 
     WHERE EXISTS (SELECT 1 
         FROM SMALL_GROUP_REPORT B 
         WHERE A.NUMBER = B.NUMBER 
        ); 
+0

좋아요, 나는 존재에 대해 몰랐습니다. SELECT 1은 무엇입니까? –

+0

@ JasonSmith 그냥 더미 데이터입니다. EXISTS 절은 하나 이상의 행이 리턴 된 경우 true입니다. – Snorex

+0

두 번째 쿼리를 시도합니다. 이제 약 10 분간 실행되었습니다. 이상한 점은 일반 SELECT 문을 사용하여 두 테이블을 같은 기준으로 결합하면 몇 초 만에 실행되기 때문입니다. –