ฉันสามารถใช้CASE
เพื่อเลือกคอลัมน์ที่จะแสดงในSELECT
แบบสอบถาม (Postgres) เช่น:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
มีความคล้ายคลึงกันหรือไม่เมื่อดำเนินการUPDATE
ค้นหาใน Postgres (เช่นเลือกคอลัมน์ที่ควรได้รับการอัปเดต)? ฉันคิดว่าไม่ใช่เพราะฉันไม่พบอะไรเกี่ยวกับเรื่องนี้ แต่อาจมีบางคนมีทางเลือกที่ฉลาด (นอกเหนือจากการใช้โพรซีเดอร์หรืออัปเดตแต่ละคอลัมน์โดยใช้ a CASE
เพื่อพิจารณาว่าควรกำหนดค่าของคอลัมน์ใหม่หรือมอบหมายค่าเดิม ราคา). หากไม่มีทางเลือกอื่นที่ง่ายแน่นอนฉันจะยอมรับว่าเป็นคำตอบเช่นกัน
ข้อมูลเพิ่มเติม : ในกรณีของฉันฉันมีคอลัมน์ที่อาจเกิดขึ้น 14 คอลัมน์ซึ่งอาจได้รับการอัปเดตโดยมีการอัปเดตเพียงคอลัมน์เดียวต่อแถวที่ตรงกัน (ตารางที่จะอัปเดตเข้าร่วมกับอีกคอลัมน์หนึ่งในแบบสอบถาม) จำนวนแถวที่จะอัปเดตจะแตกต่างกันมากที่สุดอาจเป็นหลายสิบหรือหลายร้อย ฉันเชื่อว่ามีการจัดทำดัชนีสำหรับเงื่อนไขการเข้าร่วม