2009-12-01 4 views
1

내가 가지고있는 다음과 같은 필드가 포함 된 Oracle 테이블 :비교 필드

을 :

FieldA1 NUMBER(10,0) 
FieldA2 VARCHAR2(40 BYTE) 
FieldB1 NUMBER(10,0) 
FieldB2 VARCHAR2(40 BYTE) 

가 어떻게 테이블에서 읽고 다음과 같은 조건이 참일 경우 ORACLE보기를 쓰는가를

FieldA1이 FieldB1과 일치하거나 FieldA2가 FieldB2와 일치합니다.

은 'Y'를 열로 출력하고 위 조건이 참이 아닌 경우 'N'을 출력합니까?

저스틴 동굴의 대답에 추가

답변

4
CREATE VIEW view_name 
AS 
SELECT fieldA1, 
     fieldA2, 
     fieldB1, 
     fieldB2, 
     (CASE WHEN fieldA1 = fieldB1 THEN 'Y' 
      WHEN fieldA2 = fieldB2 THEN 'Y' 
      ELSE 'N' 
     END) column_alias 
    FROM table_name 
3

: 필드가 NOT NULL로 지정되지 않기 때문에

, "fieldA 일치 fieldB"로 "fieldA = fieldB를 해석하는 것이 편리 할 수도 있고, fieldA 및 fieldB 모두는 nulls "입니다.
이 경우 fieldA = fieldB
(fieldA = fieldB) or (fieldA is null and fieldB is null)으로 바꿉니다.