Tôi có một bảng parcels
hiện có chứa các cột owner_addr1
, owner_addr2
, owner_addr3
. Đôi khi, một hoặc cả hai trường sau đều trống. Tôi muốn kết hợp chúng vào một trường mới, owner_addr
trong đó mỗi trường ở trên được nối với //
nhau giữa mỗi trường.
Nhưng nếu một hoặc nhiều cột ban đầu là NULL, tôi không muốn nối //
với cột kết quả. Vì vậy, ví dụ, nếu owner_addr1
là 123 4th Avenue SE
và owner_addr2
và owner_addr3
là NULL
, sau đó tôi muốn cột kết quả chỉ có 123 4th Avenue SE
, không 123 4th Avenue SE // //
(mà sẽ xảy ra nếu tôi chỉ làm CONCAT()
với //
giữa chuỗi NULL ... Tôi chỉ muốn thêm //
giữa phi NULL
cột, hoặc từ bỏ nó hoàn toàn nếu chỉ có một NULL
cột không .
Có một cách dễ dàng để thực hiện kiểu ghép nối có điều kiện này trong Postgresql, nơi nó để lại các dòng trống? Hay tôi nên viết một kịch bản python để làm điều này?
concat_ws()
(vàconcat()
) có biến động chức năngSTABLE
(khôngIMMUTABLE
), cấm sử dụng trực tiếp chúng trong các chỉ mục biểu thức.