3
ใช้ CASE เพื่อเลือกคอลัมน์ในแบบสอบถามแบบ UPDATE หรือไม่
ฉันสามารถใช้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 คอลัมน์ซึ่งอาจได้รับการอัปเดตโดยมีการอัปเดตเพียงคอลัมน์เดียวต่อแถวที่ตรงกัน (ตารางที่จะอัปเดตเข้าร่วมกับอีกคอลัมน์หนึ่งในแบบสอบถาม) จำนวนแถวที่จะอัปเดตจะแตกต่างกันมากที่สุดอาจเป็นหลายสิบหรือหลายร้อย ฉันเชื่อว่ามีการจัดทำดัชนีสำหรับเงื่อนไขการเข้าร่วม
13
postgresql
update