我有一個Oracle表,其中包括以下字段:比較場
FieldA1 NUMBER(10,0)
FieldA2 VARCHAR2(40 BYTE)
FieldB1 NUMBER(10,0)
FieldB2 VARCHAR2(40 BYTE)
我怎樣寫一個ORACLE觀點,即從表中讀取,如果下列條件爲真:
FieldA1與FieldB1匹配或FieldA2與FieldB2匹配
輸出字符'Y'作爲其中一列,如果上述條件不成立,則輸出'N'?
我有一個Oracle表,其中包括以下字段:比較場
FieldA1 NUMBER(10,0)
FieldA2 VARCHAR2(40 BYTE)
FieldB1 NUMBER(10,0)
FieldB2 VARCHAR2(40 BYTE)
我怎樣寫一個ORACLE觀點,即從表中讀取,如果下列條件爲真:
FieldA1與FieldB1匹配或FieldA2與FieldB2匹配
輸出字符'Y'作爲其中一列,如果上述條件不成立,則輸出'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
除了賈斯汀洞的回答是:
由於字段不指定爲NOT NULL
,它可以方便地解釋「FIELDA比賽fieldB」爲「FIELDA = fieldB,或FIELDA和fieldB都是空值」。
在這種情況下,用
代替fieldA = fieldB
(fieldA = fieldB) or (fieldA is null and fieldB is null)
。