ฉันกำลังทำงานกับ Stored Proc โดยรับพารามิเตอร์หลายตัว ปรากฎว่าสำหรับพารามิเตอร์ตัวใดตัวหนึ่ง ฉันต้องวนซ้ำรายการต่างๆ และเรียก SP หลายครั้ง แต่เมื่อฉันส่ง SP ทุกค่าที่เป็นไปได้ของประเภทนั้น มันจะดูมีประสิทธิภาพมากกว่า (และง่ายกว่า) เพียงข้ามพารามิเตอร์โดยพูดว่า "รับพวกมันทั้งหมด" โดยใช้ไวด์การ์ด
เป็นไปได้ไหมที่จะทำเช่นนั้น เช่น ด้วย "*" หรือ "%" หรืออะไรสักอย่าง?
ตามทฤษฎี (จากการวิจัยที่ฉันทำ) "%" น่าจะใช้ได้ แต่ในกรณีของฉัน มันจะไม่ส่งคืนบันทึกใดๆ ฉันทำอะไรผิดด้วยรหัสนี้:
. . .
new SqlParameter()
{
ParameterName = "@Member",
SqlDbType = SqlDbType.VarChar,
Value = '%'
},
. . .
?
WHERE col = ISNULL(@param, col)
หรือเพื่อประสิทธิภาพที่มากขึ้นWHERE col = @param or @param IS NULL
- person Lukasz Szozda   schedule 30.12.2015%
เป็น ไวด์การ์ด เมื่อ ใช้กับLIKE
โอเปอเรเตอร์ แต่ถ้าไม่เกิดขึ้นก็จะไม่ทำงาน - person Damien_The_Unbeliever   schedule 30.12.2015...LIKE @Member....
ดูคำตอบที่นี่สำหรับตัวอย่าง: stackoverflow.com/questions/10601318/ - person Mark Schultheiss   schedule 30.12.2015