我在PostgreSQL中有两个表:
A (ida, ida2)
B (idb, idb2)
所有列都是integer
。我需要在非标准连接中加入它们,这意味着如果ida2不为null,则连接为on (ida2=idb2)
如果它为null,则连接为on (ida=idb)
我需要在视图中使用它,因此我无法使用IF
声明。
我想过使用coalesce
,但它只能选择1个不是2的整数。
CREATE OR REPLACE VIEW myview AS
SELECT .....
FROM A
join B on .....? ;
我该怎么做?
答案 0 :(得分:1)
使用UNION
CREATE OR REPLACE VIEW myview AS
SELECT .....
FROM A
join B on ida2 is not null and ida2 = idb2
UNION
SELECT .....
FROM A
join B on ida2 is null and ida = idb