2012-09-06 4 views
1

값이 null 인 경우 값을 할당해야하는이 작업이 있습니다.Oracle sql - nulls에 값을 할당하거나 null이 아닌 경우 값을 유지합니다.

의이 NOT NULL은 나는 .. 나는 그것의 GOT가 쉽게 알고 (이 날 유세되는 것입니다)

감사합니다, 알

+1

당신이 무슨 뜻 이죠 : 값 업데이트를 테이블을 할당? PL/SQL의 변수? SQL에서 : select ... from ... 여기서 column_name은 NULL입니다. NVL 기능을 참조하십시오. NVL을 사용하면 null 결과 (공백으로 반환 됨)를 쿼리 결과의 문자열로 바꿀 수 있습니다. expr1이 null이면 NVL은 expr2를 반환합니다. expr1이 null이 아니면 NVL은 expr1을 반환합니다. EX : 고객의 nvl (last_name, 'Unknown')을 선택하십시오. –

답변

1

Coalesce() 여러분이 사용해야하는 것은 ansi-99 표준의 일부입니다.

Update [Table] Set 
    Col1 = coalesce(Col1, @Col1Val) 
    ,Col2 = coalesce(Col2, @Col2Val) 
Where ... 
+0

'where col is null'이 없으면 모든 행이 업데이트되며 값이 포함 된 행도 업데이트됩니다 (기존 값으로 업데이트됩니다). 'where col is null'을 사용하면 병합 할 필요가 없습니다. – Glenn

+0

@Glenn where 절이 생략되었습니다. 솔루션은 명령문 당 하나의 열에 대해서만 작동합니다. 둘 이상의 필드를 업데이트하려면 각각에 대해 update 문이 필요합니다. –

+0

@ Zachary_Yates 동의 함. 추가 열을 표시하도록 편집 할 수 있습니다. – Glenn

2
을 이미있는 값 .. 을 유지하려는 경우
UPDATE myTable 
    SET myCol = myDefaultValue 
    WHERE myCol IS NULL;