2009-12-01 52 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都是空值」。
在這種情況下,用
代替fieldA = fieldB (fieldA = fieldB) or (fieldA is null and fieldB is null)