สมมติว่าฉันมีตาราง a (พร้อมคอลัมน์ a1) และ b (กับคอลัมน์ b1 และ b2) และฉันดำเนินการเข้าร่วมด้านนอกด้านซ้าย
SELECT *
FROM a LEFT OUTER JOIN b
ON a.a1 = b.b1
จากนั้น b1 และ b2 จะเป็น NULL โดยที่ค่า a1 ไม่มีค่าที่ตรงกันของ b1
ฉันสามารถให้ค่าเริ่มต้นสำหรับ b2 แทน NULL ได้หรือไม่? หมายเหตุที่เชื่อมต่อกันจะไม่ทำงานที่นี่เพราะผมไม่ต้องการให้ค่าเริ่มต้นที่จะแทนที่ NULLs ศักยภาพใน B2 ที่มีเป็นค่าของการจับคู่ a1 b1
นั่นคือด้วยและ a เป็น
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
และค่าเริ่มต้นสำหรับ b2 ของ, พูด, 100, ฉันต้องการได้ผลลัพธ์
a1 | b1 | b2
---------------
1 | 1 | 10
2 | NULL | 100
3 | 3 | NULL
ในกรณีง่ายๆนี้ฉันสามารถทำ "ด้วยมือ" โดยดูว่า b1 เป็น NULL ในผลลัพธ์ นั่นเป็นตัวเลือกที่ดีที่สุดโดยทั่วไปหรือมีวิธีมาตรฐานและแบบ neater มากกว่าหรือไม่
sql
(ซึ่งหมายถึง "SQL ภาษาคิวรี" แท็กนั้นไม่ได้หมายถึงผลิตภัณฑ์ DBMS เฉพาะหรือภาษาถิ่น) ส่วน:[b2]=CASE WHEN ... END
เป็นนิพจน์ SQL ที่ไม่ถูกต้อง (มาตรฐาน)