Access SQL: ส่วนคำสั่ง WHERE

นำไปใช้กับ
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

บทความนี้เป็นหนึ่งในชุดบทความเกี่ยวกับ Access SQL บทความนี้อธิบายวิธีเขียนส่วนคําสั่ง WHERE และใช้ตัวอย่างในการแสดงเทคนิคต่างๆ ที่คุณสามารถใช้ได้ในส่วนคําสั่ง WHERE

ในคำสั่ง SQL ส่วนคำสั่ง WHERE ระบุเกณฑ์ที่ค่าเขตข้อมูลต้องมีเพื่อให้ระเบียนที่มีค่านั้นถูกรวมไว้ในผลลัพธ์ของคิวรี

สำหรับภาพรวมของ Access SQL ให้ดูบทความ Access SQL: แนวคิดพื้นฐาน คำศัพท์ และไวยากรณ์

ในบทความนี้

จำกัดผลลัพธ์โดยใช้เกณฑ์

เมื่อคุณต้องการใช้ข้อมูลเพื่อจํากัดจํานวนระเบียนที่ส่งกลับในคิวรี คุณสามารถใช้เกณฑ์ได้ เกณฑ์คิวรีจะคล้ายกับสูตร — ซึ่งเป็นสตริงที่อาจประกอบด้วยการอ้างอิง ตัวดําเนินการ และค่าคงที่ของเขตข้อมูล เกณฑ์คิวรีคือนิพจน์ชนิดหนึ่ง

ตารางต่อไปนี้จะแสดงตัวอย่างเกณฑ์และอธิบายวิธีการทำงานของเกณฑ์เหล่านั้น

เกณฑ์ คำอธิบาย
>25 และ <50 เกณฑ์นี้ใช้กับเขตข้อมูลตัวเลข เช่น Price หรือ UnitsInStock จะมีเฉพาะระเบียนที่ประกอบด้วยเขตข้อมูลราคา หรือ 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 เพื่อรวมแหล่งข้อมูล

บางครั้ง คุณอาจต้องการรวมแหล่งข้อมูลเข้าด้วยกันโดยยึดตามเขตข้อมูลที่มีข้อมูลตรงกัน แต่มีชนิดข้อมูลต่างกัน ตัวอย่างเช่น เขตข้อมูลในตารางหนึ่งอาจมีชนิดข้อมูลเป็นตัวเลข และคุณต้องการเปรียบเทียบเขตข้อมูลนั้นกับเขตข้อมูลในอีกตารางหนึ่งที่มีชนิดข้อมูลเป็นข้อความ

คุณไม่สามารถสร้างการรวมระหว่างเขตข้อมูลที่มีชนิดข้อมูลต่างกันได้ ถ้าต้องการรวมข้อมูลจากแหล่งข้อมูลสองแห่งโดยยึดตามค่าในเขตข้อมูลที่มีชนิดข้อมูลต่างกัน คุณสามารถสร้างส่วนคําสั่ง WHERE ที่ใช้เขตข้อมูลหนึ่งเป็นเกณฑ์ของอีกเขตข้อมูลหนึ่งได้ โดยใช้คําสําคัญ LIKE

ตัวอย่างเช่น สมมติว่าคุณต้องการใช้ข้อมูลจาก table1 และ table2 แต่เฉพาะเมื่อข้อมูลใน field1 (เขตข้อมูลชนิดข้อความ ใน table1) ตรงกับข้อมูลใน field2 (เขตข้อมูลชนิดตัวเลข ใน table2) เท่านั้น) ส่วนคําสั่ง WHERE ของคุณจะมีลักษณะดังนี้

WHERE field1 LIKE field2

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างเกณฑ์เพื่อใช้ในส่วนคำสั่ง WHERE ให้ดูที่บทความ ตัวอย่างของเกณฑ์คิวรี

ด้านบนของหน้า