Giả sử tôi có các bảng a (với cột a1) và b (với các cột b1 và b2) và tôi thực hiện nối ngoài bên trái
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
Khi đó b1 và b2 sẽ là NULL trong đó giá trị của a1 không có giá trị khớp với b1.
Tôi có thể cung cấp giá trị mặc định cho b2, thay vì NULL không? Lưu ý rằng liên hiệp sẽ không làm việc ở đây, bởi vì tôi không muốn các giá trị mặc định để ghi đè NULLs tiềm năng trong b2, nơi có là một giá trị của a1 khớp b1.
Đó là, với a và b là
CREATE TABLE a (a1)
AS VALUES (1),
(2),
(3) ;
CREATE TABLE b (b1,b2)
AS VALUES (1, 10),
(3, null) ;
a1 b1 | b2
--- --------
1 1 | 10
2 3 | NULL
3
và mặc định cho b2 của, giả sử, 100, tôi muốn nhận kết quả
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
Trong trường hợp đơn giản này, tôi có thể thực hiện "bằng tay" bằng cách xem liệu b1 có phải là NULL trong đầu ra không. Đó có phải là lựa chọn tốt nhất nói chung, hoặc có một cách chuẩn hơn và gọn gàng hơn?
sql
(có nghĩa là "SQL ngôn ngữ truy vấn". Thẻ đó không biểu thị bất kỳ sản phẩm hoặc phương ngữ DBMS cụ thể nào). Phần:[b2]=CASE WHEN ... END
là một biểu thức SQL (tiêu chuẩn) không hợp lệ.