การใช้ตัวแปรในการสอบถาม SQL

คุณสามารถใช้ออบเจ็กต์ตัวแปรในการสอบถาม SQL รวมถึงค่าสตริงได้ ในการใช้ตัวแปรในการสอบถาม SQL การสอบถามต้องเขียนเป็นสูตร โดยเริ่มด้วยเครื่องหมายเท่ากับ (=) และมีสตริงที่ต่อด้วยเครื่องหมายและ (&)

คุณสามารถใช้ตัวแปรแทนชื่อตารางหรือรวมกับส่วนคำสั่ง WHERE แทนค่าตัวกรองได้

การใช้ตัวแปรสำหรับชื่อตาราง

แทนที่จะระบุชื่อตารางที่ชัดเจน คุณสามารถสร้างตัวแปรเพื่อเก็บชื่อตารางและเรียกใช้คำสั่ง select บนตัวแปรได้:

="SELECT * FROM "&GlobalVariables.TableName.Text
	 

ซึ่งเทียบเท่ากับ:

SELECT * FROM [TableName]
	 

การใช้ตัวแปรสำหรับค่าตัวกรอง

คุณสามารถสร้างตัวแปรเพื่อเก็บชื่อผลิตภัณฑ์:

="SELECT * FROM Products WHERE ProductName =’"&
		GlobalVariables.ProductName.Text&"’"
	 

ซึ่งจะเทียบเท่ากับการเลือกนี้จากตารางผลิตภัณฑ์:

SELECT * FROM Products WHERE ProductName= ’Widget’
	 

โดยที่ตัวแปรส่งคืนค่าสตริง ตัวแปรนั้นต้องอยู่ในเครื่องหมายคำพูดเดียว (') โดยที่ตัวแปรส่งกลับค่าตัวเลขก็ไม่จำเป็น ตัวอย่างเช่น:

="SELECT * FROM Products WHERE ProductID="&
		GlobalVariables.ProductID.Text
	 

ไวยากรณ์เฉพาะฐานข้อมูล

มีความแตกต่างในวิธีที่ผู้ให้บริการฐานข้อมูลใช้ SQL รายการเชิงสัมพันธ์ถูกกำหนดโดยคำสั่ง SQL ดังนั้น ผู้ออกแบบรายงานอาจต้องเขียนคำสั่งเดียวกันหลายเวอร์ชันเพื่อให้แน่ใจว่าข้อกำหนดของรายการจะทำงานกับการเชื่อมต่อข้อมูลประเภทต่างๆ

ถ้าคุณใช้ตัวแปรในการสอบถาม SQL ไวยากรณ์ที่จำเป็นจะขึ้นอยู่กับชนิดของฐานข้อมูลที่เขียนแบบสอบถาม ตัวอย่างเช่น คำสั่งนี้เขียนด้วย SQL มาตรฐาน:

=" SELECT Id, AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "

สำหรับฐานข้อมูล Oracle คำสั่งจะเป็น:

=" SELECT ""Id"", ""AccCde"" FROM DES.LDGA where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "

สำหรับฐานข้อมูล DB2 คำสั่งจะเป็น:

=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "