ทิปเทคนิค
Select single * from customers where name = 'John'.
ถ้าไม่อยากให้มีข้อความเตือน (Warning Message) เมื่อเช็กซินแท็กซ์ของโปรแกรม ให้เราแก้ไขคำสั่ง Select Single * ... โดยใช้ออปชัน up to 1 rows ในคำสั่ง Select ... Endselect แทนดังนี้
Select * from customers up to 1 rows where name = 'John'.
...
Endselect.
ผลลัพธ์ที่ได้จะเหมือนกับใช้คำสั่ง Select single * ... ทุกประการ เพียงแต่ว่าจะไม่มีข้อความ Warning Message ขึ้นมากวนใจเวลาเช็กซินแท็กซ์ของโปรแกรมนั่นเอง ซึ่งการทำงานจริงๆ ของคำสั่ง Select * from ... up to 1 rows ... Endselect ก็คือ ระบบจะค้นหาข้อมูลตามเงื่อนไขใน Where Clause ที่ฐานข้อมูล โดยถ้าพบข้อมูลตามเงื่อนไขแล้วก็จะหยุดการอ่านข้อมูลเรคอร์ดต่อไปทันที เพราะเรากำหนดให้อ่านข้อมูล ตามเงื่อนไขแค่ 1 เรคอร์ดเท่านั้นนั่นเอง แต่ถ้าในคำสั่ง Select * ... เราไม่ระบุออปชัน up to 1 rows ระบบก็จะอ่านข้อมูลจากฐานข้อมูลไปจนหมดทุกเรคอร์ดในตารางตามเงื่อนไข ถึงแม้ว่าจะพบเรคอร์ดที่ต้องการแล้วก็ตาม เพราะคำสั่ง Select ... Endselect เป็นคำสั่งที่ใช้ในการวนลูป เพื่ออ่านข้อมูลหลายเรคอร์ดในตารางที่ฐานข้อมูลนั่นเอง
Select * from customers where name like 'P%'.
โดยที่ค่า % แทนอะไรก็ได้ แต่ถ้าต้องการแสดงข้อมูลลูกค้าที่ชื่อตัวอักษรตัวที่สองเป็นตัว r เราสามารถเขียนคำสั่งได้ดังนี้
Select * from customers where name like '_r%'.
โดยที่ค่า _ จะแทนตัวอะไรก็ได้ 1 ตัวอักษร และถ้าต้องการแสดงข้อมูลลูกค้าที่ชื่อมีคำว่า SAP อยู่ด้วย เราก็ จะเขียนคำสั่งได้ดังนี้
Select * from customers where name like '%SAP%'.
ก็คือค่า % แทนตัวอะไรก็ได้กี่ตัวก็ได้ ส่วนค่า _ แทนตัวอักษรอะไรก็ได้ 1 ตัวแต่อย่าลืมใช้ออปชัน like ด้วย นะครับ