นี่คือหนึ่งในชุดบทความเกี่ยวกับ Access SQL บทความนี้อธิบายวิธีการเขียนส่วนคําสั่ง WHERE และใช้ตัวอย่างในการแสดงเทคนิคต่างๆ ที่คุณสามารถใช้ในส่วนคําสั่ง WHERE
ในคำสั่ง SQL ส่วนคำสั่ง WHERE ระบุเกณฑ์ที่ค่าเขตข้อมูลต้องมีเพื่อให้ระเบียนที่มีค่านั้นถูกรวมไว้ในผลลัพธ์ของคิวรี
สำหรับภาพรวมของ Access SQL ให้ดูบทความ Access SQL: แนวคิดพื้นฐาน คำศัพท์ และไวยากรณ์
ในบทความนี้
จำกัดผลลัพธ์โดยใช้เกณฑ์
เมื่อคุณต้องการใช้ข้อมูลเพื่อจํากัดจํานวนระเบียนที่ถูกส่งกลับในคิวรี คุณสามารถใช้ เกณฑ์ เกณฑ์คิวรีจะคล้ายกับสูตร ซึ่งเป็นสตริงที่อาจประกอบด้วยการอ้างอิง ตัวดําเนินการ และค่าคงที่ของเขตข้อมูล เกณฑ์คิวรีเป็นชนิด นิพจน์
ตารางต่อไปนี้จะแสดงตัวอย่างเกณฑ์และอธิบายวิธีการทำงานของเกณฑ์เหล่านั้น
เกณฑ์ |
คำอธิบาย |
>25 และ <50 |
เงื่อนไขนี้นําไปใช้กับฟิลด์หมายเลข เช่น ราคา หรือ หน่วยในสต็อก โดยจะรวมเฉพาะระเบียนที่เขตข้อมูล ราคา หรือ UnitsInStock มีค่าที่มากกว่า 25 และน้อยกว่า 50 เท่านั้น |
DateDiff ("yyyy", [BirthDate], Date()) > 30 |
เกณฑ์นี้นําไปใช้กับเขตข้อมูลวันที่/เวลา เช่น BirthDate เฉพาะระเบียนที่จํานวนปีระหว่างวันเกิดของบุคคลและวันที่ของวันนี้มีค่ามากกว่า 30 เท่านั้นที่จะถูกรวมไว้ในผลลัพธ์ของคิวรี |
Is Null |
เกณฑ์นี้สามารถใช้กับเขตข้อมูลชนิดใดๆ ก็ได้เพื่อแสดงระเบียนที่เขตข้อมูลมีค่าเป็น Null |
ดังที่แสดงในตารางก่อนหน้า เกณฑ์อาจมีลักษณะแตกต่างกันมาก โดยขึ้นอยู่กับชนิดข้อมูลของเขตข้อมูลที่ใช้เกณฑ์และความต้องการเฉพาะของคุณ เกณฑ์บางเกณฑ์เป็นเกณฑ์ง่ายๆ และใช้ตัวดําเนินการและค่าคงที่พื้นฐาน ส่วนอื่นๆ มีความซับซ้อน และใช้ฟังก์ชันและตัวดําเนินการพิเศษ และมีการอ้างอิงเขตข้อมูล
สิ่งสำคัญ: ถ้าเขตข้อมูลถูกใช้กับฟังก์ชันการรวม คุณจะไม่สามารถระบุเกณฑ์สําหรับเขตข้อมูลนั้นในส่วนคําสั่ง WHERE ได้ แต่คุณสามารถใช้ส่วนคําสั่ง HAVING เพื่อระบุเกณฑ์สําหรับเขตข้อมูลที่ถูกรวมแทนได้ สําหรับข้อมูลเพิ่มเติม ให้ดูบทความ Access SQL: แนวคิดพื้นฐาน คําศัพท์ และไวยากรณ์ และส่วนคําสั่ง HAVING
ไวยากรณ์ส่วนคำสั่ง WHERE
คุณใช้เกณฑ์ของคิวรีในส่วนคำสั่ง WHERE ของคำสั่ง SELECT
ส่วนคำสั่ง WHERE มีไวยากรณ์พื้นฐานดังต่อไปนี้:
WHERE field = criterion
ตัวอย่างเช่น สมมติว่าคุณต้องการหมายเลขโทรศัพท์ของลูกค้า แต่คุณจําได้เพียงว่านามสกุลของลูกค้าคือ Bagel แทนที่จะดูหมายเลขโทรศัพท์ทั้งหมดในฐานข้อมูลของคุณ คุณสามารถใช้ส่วนคําสั่ง WHERE เพื่อจํากัดผลลัพธ์และทําให้ค้นหาหมายเลขโทรศัพท์ที่คุณต้องการได้ง่ายขึ้น สมมติว่านามสกุลถูกเก็บไว้ในเขตข้อมูลที่ชื่อ LastName ส่วนคําสั่ง WHERE ของคุณจะปรากฏดังนี้:
WHERE [LastName]='Bagel'
หมายเหตุ: คุณไม่จําเป็นต้องใส่เกณฑ์ในส่วนคําสั่ง WHERE โดยยึดตามค่าที่เท่ากัน คุณสามารถใช้ตัวดําเนินการเปรียบเทียบอื่นๆ เช่น มากกว่า (>) หรือน้อยกว่า (<) ตัวอย่างเช่น WHERE [Price]>100
ใช้ส่วนคำสั่ง WHERE เพื่อรวมแหล่งข้อมูล
ในบางครั้ง คุณอาจต้องการรวมแหล่งข้อมูลโดยยึดตามเขตข้อมูลที่มีข้อมูลที่ตรงกัน แต่มีชนิดข้อมูลต่างกัน ตัวอย่างเช่น เขตข้อมูลในตารางหนึ่งอาจมีชนิดข้อมูลเป็นตัวเลข และคุณต้องการเปรียบเทียบเขตข้อมูลนั้นกับเขตข้อมูลในตารางอื่นที่มีชนิดข้อมูล Text
คุณไม่สามารถสร้างการรวมระหว่างเขตข้อมูลที่มีชนิดข้อมูลต่างกันได้ เมื่อต้องการรวมข้อมูลจากแหล่งข้อมูลสองแหล่งโดยยึดตามค่าในเขตข้อมูลที่มีชนิดข้อมูลต่างกัน ให้คุณสร้างส่วนคําสั่ง WHERE ที่ใช้เขตข้อมูลหนึ่งเป็นเกณฑ์สําหรับเขตข้อมูลอื่น โดยใช้คําสําคัญ LIKE
ตัวอย่างเช่น สมมติว่าคุณต้องการใช้ข้อมูลจาก table1 และ table2 แต่เฉพาะเมื่อข้อมูลใน field1 (เขตข้อมูลข้อความใน table1) ตรงกับข้อมูลใน field2 (เขตข้อมูลตัวเลขใน table2) ส่วนคําสั่ง WHERE ของคุณจะมีลักษณะดังต่อไปนี้:
WHERE field1 LIKE field2
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างเกณฑ์เพื่อใช้ในส่วนคำสั่ง WHERE ให้ดูที่บทความ ตัวอย่างของเกณฑ์คิวรี