Sql 在ORACLE视图中比较字段

Sql 在ORACLE视图中比较字段,sql,oracle,views,Sql,Oracle,Views,我有一个ORACLE表,其中包括以下字段: FieldA1 NUMBER(10,0) FieldA2 VARCHAR2(40 BYTE) FieldB1 NUMBER(10,0) FieldB2 VARCHAR2(40 BYTE) 如果满足以下条件,如何编写从表中读取的ORACLE视图: 字段A1匹配字段B1或字段A2匹配字段B2 将字符“Y”作为列之一输出,如果上述条件不成立,则除Justin Cave的答案外,还输出“N”: CREATE VIEW view_name AS SELECT

我有一个ORACLE表,其中包括以下字段:

FieldA1 NUMBER(10,0)
FieldA2 VARCHAR2(40 BYTE)
FieldB1 NUMBER(10,0)
FieldB2 VARCHAR2(40 BYTE)
如果满足以下条件,如何编写从表中读取的ORACLE视图:

字段A1匹配字段B1或字段A2匹配字段B2


将字符“Y”作为列之一输出,如果上述条件不成立,则除Justin Cave的答案外,还输出“N”:

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
由于字段未指定为
非空
,因此可以方便地将“fieldA match fieldB”解释为“fieldA=fieldB,或者fieldA和fieldB都为空”。
在这种情况下,将
fieldA=fieldB
替换为

(fieldA=fieldB)或(fieldA为空,fieldB为空)

除了贾斯汀·凯夫的回答:

由于字段未指定为
非空
,因此可以方便地将“fieldA match fieldB”解释为“fieldA=fieldB,或者fieldA和fieldB都为空”。
在这种情况下,将
fieldA=fieldB
替换为
(fieldA=fieldB)或(fieldA为空,fieldB为空)