나는 내 postgresql 데이터베이스에 두 개의 테이블을 가지고 있습니다. 두 테이블의 열이 같습니다.Postgresql 테이블이 교차합니다
null이 아닌 tableA의 값을 어떻게 선호합니까? 내가 싶어
TableA
id | name
1 | val_a_1
2 | val_a_2
3 | (null)
TableB
id | name
1 | (null)
2 | val_b_2
3 | val_b_3
결과 : 열이 많이 있기 때문에 나는이처럼 가지고 있지만 더 복잡 한 지금은
id | name
1 | val_a_1
2 | val_a_2
3 | val_b_3
.
SELECT *
CASE
WHEN TableA.name is NULL or TableA.name = ''
THEN (SELECT TableB.name FROM TableB where TableB.id = 1)
ELSE TableA.name
END
AS name,
CASE
.
. another columns
.
END
감사
글쎄, 우리는 여기에 몇 가지 합병증을 가지고있다. 우리가 선택하고자하는 데이터는 서로 독립적이며 케이스 /에 공통/유사 ID가 없습니다. 또한 .. 우리는 약 25 개의 컬럼을 가지고 있습니다. 따라서 모든 컬럼에 대한 "coalesce (a.name, b.name) AS name"은 스트레스를받을 것입니다 :) 이해한다면 - tableA에 하나의 고유 한 행이 있습니다. tableB에서 하나의 고유 한 행을 선택하고이 두 개의 선택된 행을 "결합"합니다. 마찬가지로, 합쳐 지지만 두 개의 선택된 행 사이. 우리는 그 때의 경우를 가지고 있습니다. 그러나 당신이 무엇을 의미하는지 안다면 그것은 또한 매우 스트레스가 많습니다 :) – anti