比较ORACLE视图中的字段

时间:2009-12-01 08:49:42

标签: sql oracle views

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

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

如何编写从表中读取的ORACLE视图,如果满足以下条件:

FieldA1匹配FieldB1或FieldA2匹配FieldB2

输出字符'Y'作为其中一列,如果上述条件不为真,则输出'N'?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

除了Justin Cave的回答:

由于字段未指定为NOT NULL,因此将“fieldA match fieldB”解释为“fieldA = fieldB,或者fieldA和fieldB都为空”可能会很方便。
在这种情况下,用{替换fieldA = fieldB (fieldA = fieldB) or (fieldA is null and fieldB is null)