我有一个ORACLE表,其中包含以下字段:
FieldA1 NUMBER(10,0)
FieldA2 VARCHAR2(40 BYTE)
FieldB1 NUMBER(10,0)
FieldB2 VARCHAR2(40 BYTE)
如何编写从表中读取的ORACLE视图,如果满足以下条件:
FieldA1匹配FieldB1或FieldA2匹配FieldB2
输出字符'Y'作为其中一列,如果上述条件不为真,则输出'N'?
答案 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)
。