Sql 在ORACLE视图中比较字段
我有一个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
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为空)