ใช้สัญลักษณ์แทนสำหรับการจับคู่แบบไม่ถูกต้อง
การจับคู่รูปแบบ SQL ช่วยให้คุณสามารถค้นหารูปแบบข้อมูลได้หากคุณไม่ทราบคำหรือวลีที่คุณต้องการ แบบสอบถาม SQL แบบนี้ใช้อักขระตัวแทนเพื่อให้ตรงกับรูปแบบแทนที่จะระบุว่าตรง ตัวอย่างเช่นคุณสามารถใช้สัญลักษณ์แทน "C%" เพื่อจับคู่สตริงที่ขึ้นต้นด้วยทุน C
ใช้ LIKE Operator
หากต้องการใช้นิพจน์ตัวแทนในแบบสอบถาม SQL ให้ใช้โอเปอเรเตอร์ LIKE ในคำสั่ง WHERE และใส่รูปแบบไว้ในเครื่องหมายอัญประกาศเดี่ยว
ใช้% Wildcard เพื่อค้นหาแบบธรรมดา
เมื่อต้องการค้นหาพนักงานในฐานข้อมูลของคุณโดยใช้นามสกุลที่ขึ้นต้นด้วยตัวอักษร C ให้ใช้คำสั่ง Transact-SQL ต่อไปนี้:
SELECT * FROM employees WHERE last_name LIKE 'C%'การละเว้นรูปแบบโดยใช้ NOT Keyword
ใช้คำสำคัญ NOT เพื่อเลือกระเบียนที่ไม่ตรงกับรูปแบบ ตัวอย่างเช่นแบบสอบถามนี้ส่งกลับระเบียนทั้งหมดที่มีชื่อล่าสุดไม่ ได้ ขึ้นต้นด้วย C:
SELECT * FROM employees WHERE last_name ไม่ชอบ 'C%'การจับคู่รูปแบบใดก็ได้โดยใช้% ตัวแทนสองครั้ง
ใช้สองกรณีของ % wildcard เพื่อให้ตรงกับรูปแบบเฉพาะที่ใดก็ได้ ตัวอย่างนี้จะส่งกลับระเบียนทั้งหมดที่มี C ที่ใดก็ได้ในนามสกุล:
SELECT * FROM employees WHERE last_name LIKE '% C%'การค้นหารูปแบบการแข่งขันในตำแหน่งที่เฉพาะเจาะจง
ใช้ _ wildcard เพื่อส่งคืนข้อมูลในตำแหน่งที่ระบุ ตัวอย่างนี้ตรงกับเฉพาะเมื่อ C เกิดขึ้นที่ตำแหน่งที่สามของคอลัมน์ชื่อล่าสุด:
SELECT * FROM employees WHERE last_name LIKE '_ _C%'นิพจน์ตัวแทนที่ได้รับการสนับสนุนใน Transact SQL
มีนิพจน์ตัวแทนหลายตัวที่สนับสนุนโดย Transact SQL:
- อักขระ % ที่ ตรงกับศูนย์หรือมากกว่าอักขระใด ๆ และสามารถใช้เพื่อกำหนดสัญลักษณ์แทนทั้งก่อนและหลังรูปแบบ หากคุณคุ้นเคยกับการจับคู่รูปแบบของ DOS จะเทียบเท่ากับเครื่องหมาย * ในไวยากรณ์ที่
- _ wildcard ตรงกับอักขระตัวใดตัวหนึ่ง มันเทียบเท่ากับ ? wildcard ในการจับคู่รูปแบบ DOS
- ระบุรายการอักขระโดยการใส่ไว้ในวงเล็บเหลี่ยม ยกตัวอย่างเช่นสัญลักษณ์ [aeiou] ตรงกับสระใด ๆ
- ระบุช่วงของอักขระโดยการใส่ช่วงเป็นวงเล็บเหลี่ยม ตัวอย่างเช่นสัญลักษณ์ตัวแทน [am] ตรงกับตัวอักษรใด ๆ ในช่วงครึ่งแรกของตัวอักษร
- ลบอักขระหลายตัวโดยรวมอักขระ carat ไว้ด้านในของวงเล็บเหลี่ยมเปิด ตัวอย่างเช่น [^ aeiou] ตรงกับอักขระที่ไม่ใช่ตัวอักษรใด ๆ ในขณะที่ [^ am] ตรงกับตัวอักษรใด ๆ ที่ไม่อยู่ในครึ่งแรกของตัวอักษร
การรวมอักขระตัวแทนสำหรับรูปแบบที่ซับซ้อน
รวมอักขระเหล่านี้ไว้ในรูปแบบที่ซับซ้อนเพื่อทำการค้นหาขั้นสูงเพิ่มเติม ตัวอย่างเช่นสมมติว่าคุณต้องสร้างรายชื่อพนักงานทุกคนที่มีชื่อขึ้นต้นด้วยตัวอักษรจากครึ่งแรกของตัวอักษร แต่ ไม่ได้ จบลงด้วยสระ คุณสามารถใช้แบบสอบถามต่อไปนี้:
SELECT * FROM employees WHERE last_name LIKE '[am]% [^ aeiou]'ในทำนองเดียวกันคุณสามารถสร้างรายชื่อพนักงานทั้งหมดที่มีชื่อนามสกุลประกอบด้วยอักขระสี่ตัวโดยใช้สี่รูปแบบของ _ pattern:
SELECT * จากพนักงานที่ไหน last_name LIKE '____'ในขณะที่คุณสามารถบอกได้การใช้รูปแบบการจับคู่แบบ SQL ช่วยให้ผู้ใช้ฐานข้อมูลมีความสามารถในการค้นหาข้อความได้ง่ายขึ้นและดำเนินการค้นหาขั้นสูง