การใช้ไวยากรณ์ SELECT 2 ใน ADO
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-05-30 19:54:35
ต่อจากบทความที่แล้ว:
WHERE สามารถใช้ตัวดำเนินการ BETWEEN, LIKE และ IN ต่อไปนี้
ระหว่าง...และ
ระหว่าง...และกำหนดว่าค่าของนิพจน์อยู่ภายในช่วงที่ระบุหรือไม่ ไวยากรณ์คือ:
expr ระหว่างค่า 1 และค่า 2
ระบุว่าถ้าค่าของ expr อยู่ระหว่างค่า 1 ถึงค่า 2 ตัวดำเนินการ Between...And จะส่งกลับค่า True มิฉะนั้นจะส่งกลับค่า False
คุณยังสามารถเพิ่มการดำเนินการเชิงตรรกะ ไม่ใช่ expr ระหว่างค่า 1 และค่า 2 เพื่อกำหนดเงื่อนไขตรงกันข้าม กล่าวคือ expr อยู่นอกช่วงของค่า 1 และค่า 2
ถ้า expr, value1 หรือ value2 เป็น Null ระหว่าง...และจะส่งกลับค่า Null
คุณไม่สามารถใช้อักขระตัวแทน * ในตัวดำเนินการ Between...And ได้ ตัวอย่างเช่น คุณไม่สามารถใช้ 100* และ 500* เพื่อค้นหาหมายเลขรหัสผลิตภัณฑ์ระหว่าง 1000 ถึง 5000
ชอบ
ชอบที่จะค้นหาคำหลักที่ตรงกัน
Like ตามด้วยนิพจน์ที่แสดงรายการสตริงหรือตัวอักษรสตริงที่จะเปรียบเทียบ
ในนิพจน์ คุณสามารถใช้ตัวดำเนินการ Like เพื่อเปรียบเทียบข้อมูลเขตข้อมูลกับนิพจน์สตริงได้ คุณสามารถใช้ wildcard * เพื่อค้นหาข้อมูลที่คล้ายกัน เช่น Like "王*" และแบบสอบถามจะส่งกลับข้อมูลที่ขึ้นต้นด้วย [王] ในทุกช่อง
สัญลักษณ์ที่สามารถใช้ในนิพจน์ตัวดำเนินการหลัง Like:
%: อักขระตัวแทนซึ่งแสดงถึงอักขระตั้งแต่หนึ่งตัวขึ้นไป ตัวอย่างเช่น LIKE jack% จะค้นหาตัวอักษรสตริงทั้งหมดที่ขึ้นต้นด้วย jack และ LIKE %jack% จะค้นหาตัวอักษรสตริงรวมถึง jack
_: อักขระตัวแทนของอักขระหนึ่งตัว เช่น LIKE jack_ จะค้นหาตัวอักษรสตริง เช่น jack1, jacka ฯลฯ และ LIKE _jack_ จะค้นหาตัวอักษรสตริง เช่น ajackb, cjackf เป็นต้น
[xy]: ระบุช่วงอักขระ เช่น LIKE [ac]jack จะค้นหาข้อความสตริง เช่น ajack1, bjack, cjack เป็นต้น
[^xy]: ระบุช่วงอักขระที่ยกเว้น เช่น LIKE [^ac]jack จะไม่พบตัวอักษรสตริง เช่น ajack1, bjack, cjack เป็นต้น
ในตัวอย่างต่อไปนี้ คุณจะได้รับข้อมูลที่ขึ้นต้นด้วยตัวอักษร A และตามด้วยตัวอักษรใดๆ ระหว่าง B และ G และตัวเลข:
ชอบ "A[BG]#"
ใน
ในสูตรการดำเนินการ ระยะที่จำกัด
ไวยากรณ์คือ:
expr [ไม่] ใน (value1, value2,...)
ในหมู่พวกเขา expr คือฟิลด์นิพจน์การดำเนินการ value1, value2, ... คือรายการช่วงที่ระบุ
ตัวอย่างเช่น คุณสามารถใช้ตัวดำเนินการ In เพื่อระบุเมืองที่นักเรียนต้องอาศัยอยู่ ซึ่งได้แก่ กวางโจว เซินเจิ้น หรือซัวเถา:
เลือก *
จากนักเรียน
WHERE CityIn ('เมืองกวางโจว', 'เมืองเซินเจิ้น', 'เมืองซัวเถา')
ลองดูตัวอย่างโปรแกรม ASP ที่ใช้คำสั่ง SQL นี้
เราสามารถใช้ IN clause เพื่อกำหนดช่วงได้ เช่น โปรแกรม ASP rs24.asp เป็นดังนี้ [SELECT name, subject, Score From Exam Where Score In (SELECT Score From Exam Where Score >= 60)] ให้ใช้ IN เพื่อค้นหาคะแนนมากกว่าหรือเท่ากับ 60 คะแนน บันทึก:
-
ตั้งค่า conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={ไดรเวอร์ Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;"
ตั้ง rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "เลือกชื่อ วิชา คะแนนจากการสอบ โดยที่คะแนนใน (เลือกคะแนนจากการสอบ โดยที่คะแนน >= 60)"
rs2.เปิด SqlStr,conn1,1,1
Response.Write "<p>ใน: คะแนนต่ำกว่า 60 จะไม่นับ"
ทำในขณะที่ไม่ใช่ rs2.EOF
การตอบสนองเขียน "<BR>" & rs2("ชื่อ") & " " & rs2("Subject") & " คะแนน: " & rs2("คะแนน")
rs2.MoveNext
วนซ้ำ
rs2.ปิด
-
โปรแกรม ASP ข้างต้น rs24.asp ใช้เบราว์เซอร์บนฝั่งไคลเอ็นต์เพื่อเรียกดูผลการดำเนินการและแสดงบันทึกที่มีคะแนนมากกว่าหรือเท่ากับ 60 คะแนน
ไม่เข้า
NOT IN นิพจน์หมายความว่าไม่อยู่ในช่วงที่ระบุ
ลองดูตัวอย่างการใช้คำสั่ง SQL นี้ในโปรแกรม ASP
เราสามารถใช้ Not In clause เพื่อกำหนดเรคคอร์ดที่ไม่ควรแสดงได้ เช่น โปรแกรม ASP rs24.asp เป็นดังนี้ [SELECT name, subject, Score From Exam Where Score Not In (SELECT Score From Exam Where Score) >= 60)] ใช้ IN ค้นหาบันทึกที่มีคะแนนไม่เกิน 60 คะแนน กล่าวคือ บันทึกที่มีคะแนนน้อยกว่า 60 คะแนน:
-
ตั้งค่า conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={ไดรเวอร์ Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;"
ตั้ง rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "เลือกชื่อ, วิชา, คะแนนจากการสอบโดยที่คะแนนไม่อยู่ใน (เลือกคะแนนจากการสอบโดยที่คะแนน >= 60)"
rs2.เปิด SqlStr,conn1,1,1
Response.Write "<p>Not In: คะแนนที่สูงกว่า 60 จะไม่นับ"
ทำในขณะที่ไม่ใช่ rs2.EOF
การตอบสนองเขียน "<BR>" & rs2("ชื่อ") & " " & rs2("Subject") & " คะแนน: " & rs2("คะแนน")
rs2.MoveNext
วนซ้ำ
rs2.ปิด
-
สำหรับโปรแกรม ASP rs24.asp ข้างต้น ให้ใช้เบราว์เซอร์บนฝั่งไคลเอ็นต์เพื่อเรียกดูผลการดำเนินการและแสดงบันทึกที่มีคะแนนไม่เกินหรือเท่ากับ 60 คะแนน