ฉันต้องการหลีกเลี่ยงการตรวจสอบจำนวนมากดังต่อไปนี้ในรหัสของฉัน:
myObj.someStringField = rdr.IsDBNull(someOrdinal)
? string.Empty
: rdr.GetString(someOrdinal);
ฉันคิดว่าฉันสามารถให้แบบสอบถามของฉันดูแลค่าว่างได้โดยทำสิ่งนี้:
SELECT myField1, [isnull](myField1, '')
FROM myTable1
WHERE myField1 = someCondition
ฉันใช้ SQLite และดูเหมือนว่าจะไม่รู้จักisnull
ฟังก์ชันนี้ ฉันได้พยายามยังคนเทียบเท่าบางส่วนได้รับการยอมรับในฐานข้อมูลอื่น ๆ ( NVL()
, IFNULL()
และCOALESCE()
) แต่ SQLite ดูเหมือนจะไม่รับรู้ใด ๆ ของพวกเขา
ใครมีคำแนะนำหรือรู้วิธีที่ดีกว่านี้ น่าเสียดายที่ฐานข้อมูลไม่มีค่าเริ่มต้นสำหรับทุกฟิลด์ นอกจากนี้ฉันจำเป็นต้องใช้บางส่วนLEFT JOIN
ในบางกรณีซึ่งบางฟิลด์ที่ส่งคืนจะเป็นโมฆะเนื่องจากไม่มีระเบียนที่ตรงกันในLEFT JOIN
ตาราง