1s 8 คล้ายกันในคำขอ คล้ายกับเงื่อนไขการสืบค้น การใช้โอเปอเรเตอร์ "like"
มาดูวัตถุประสงค์และการใช้ตัวดำเนินการแบบมีเงื่อนไขกัน ชอบ(อังกฤษชอบ)ในภาษาคิวรี 1C ในตัวอย่าง
ผ่านอย่างรวดเร็ว
วัตถุประสงค์
ตรวจสอบว่าค่าสตริงในคำขอตรงกับรูปแบบที่ระบุหรือไม่ - ส่งกลับค่าบูลีน (TRUE หรือ FALSE)
- เช็คไม่ขึ้นอยู่กับตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
- แบบสอบถามใช้ดัชนีตาราง—ไม่เกี่ยวข้องกับดัชนีการค้นหาข้อความแบบเต็ม
- อาจใช้เวลานานจึงจะเสร็จสมบูรณ์ด้วยโต๊ะขนาดใหญ่
- ควรแปลงสตริงที่มีความยาวไม่จำกัดโดยใช้ฟังก์ชัน SUBSTRING
สถานที่ใช้งาน
- ในแง่ของตัวดำเนินการ WHERE
- ในเงื่อนไขการออกแบบ ทางเลือกเมื่อ<>จากนั้น "" ELSE "" สิ้นสุด
- ในฟิลด์การเลือก (ตัวอย่างเช่น: ชื่อ LIKE &ParameterSimilar to StringSuitable)
คำอธิบายไวยากรณ์ของตัวดำเนินการ LIKE
พารามิเตอร์ตัวดำเนินการต้องเป็นสตริง โดยสามารถระบุเป็นค่าคงที่ หรือส่งผ่านเป็นพารามิเตอร์คำขอได้
ตัวอักษร (มาสก์) ที่แสดงด้านล่างสามารถใช้ร่วมกันหรือแยกกันได้
ข้อกำหนดสตริงที่แน่นอน
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
Keys.Name คล้ายกับ "1" // เทียบเท่ากับ Keys.Name ="1"
ผลลัพธ์:
% เป็นความหมายตามตัวอักษรของจำนวนอักขระใดๆ ก็ตาม
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ชื่อ LIKE "%"
ผลลัพธ์: อะไรก็ได้ 10 รายการ
_ (ขีดล่าง): จับคู่ตัวอักษรตัวใดตัวหนึ่ง
ตัวอย่าง #1:
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ชื่อ LIKE "_"
ตัวอย่าง #2:เริ่มต้นด้วยอักขระใดๆ ตามด้วย “1” แล้วตามด้วยอักขระใดๆ
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ ชื่อคล้ายกับ "_1%"
ผลลัพธ์:
(อักขระหนึ่งตัวขึ้นไปในวงเล็บเหลี่ยม)
- แต่ละตัวอักษรที่ตรงกับอักขระตัวใดตัวหนึ่งจะถูกใช้เป็น OR
เป็นที่ยอมรับได้ในการระบุช่วง เช่น a-z,0-5 ซึ่งหมายถึงอักขระที่กำหนดเองจากช่วงที่ระบุ
ตัวอย่าง
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ชื่อคล้ายกับ "[l]%"
ผลลัพธ์: 10 เริ่มต้นด้วย "l" หรือ "z"
ตัวอย่าง:เริ่มด้วย 5,6,7
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ชื่อ LIKE "%"
ผลลัพธ์:
[^] (ในวงเล็บเหลี่ยมจะมีเครื่องหมายเลี่ยง ^ ตามด้วยอักขระหนึ่งตัวขึ้นไป)
เทียบเท่ากับอักขระใดๆ (_) ยกเว้นอักขระที่ระบุ ()
ตัวอย่าง
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
Keys.Name SIMILAR เป็น "8.[^012]%"//ไม่รวม 8.0,8.1,8.2
ผลลัพธ์: ทั้งหมดเริ่มต้นด้วย "8" ยกเว้นที่ระบุไว้
SPECIAL CHARACTER - คำสั่งสำหรับระบุอักขระที่ลงทะเบียนข้างต้นในคำขอ
เนื่องจากเป็นสัญลักษณ์บริการ จึงอนุญาตให้ใช้อย่างน้อย: #,~,/,\
ตัวอย่าง:
เลือก 10 อันดับแรก
คีย์.ชื่อ
จาก
Directory.Keys AS คีย์
ที่ไหน
คีย์ชื่อ LIKE "#_" ตัวละครพิเศษ #"
ผลลัพธ์:
การบังคับใช้ในแพลตฟอร์ม
พารามิเตอร์ไม่ถูกต้อง LIKE<>>
- พารามิเตอร์ไม่ผ่าน ประเภทสตริง: เช่นตัวเลข 1 แทนที่จะเป็นสตริง "1"
- ฟิลด์ประเภทที่ไม่ใช่สตริงจะถูกเปรียบเทียบกับมาสก์ที่ถูกต้อง (เช่น ลิงก์) หรือเมื่อเชื่อมต่อ ค่าจะไม่ได้รับการตรวจสอบสำหรับ IsNUL
โปรดใส่ใจกับข้อความแสดงข้อผิดพลาดที่คำถามปรากฏขึ้น:
คีย์ชื่อคล้ายกัน<>>&ล
บางครั้งสถานการณ์เกิดขึ้นเมื่อใน 1C 8.3 หรือ 8.2 คุณต้องทำการเลือกเช่นจากไดเร็กทอรีขององค์ประกอบทั้งหมดที่มีคำว่า "เคลือบ" อยู่ในชื่อ หรือจากไดเรกทอรี ให้เลือกผู้รับเหมาทั้งหมดที่มีนามสกุลมีคำว่า "อีวาน" โดยทั่วไป ให้ตรวจสอบค่าสตริงบางส่วน
เพื่อจุดประสงค์นี้มีตัวดำเนินการใน 1C คำสั่ง 8.3 และ 8.2 - "คล้ายกัน" มันถูกใช้ตามลำดับภายใต้เงื่อนไขต่อไปนี้:
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
จะใช้เทมเพลตในแบบสอบถาม 1C ได้อย่างไร
ในการสร้างเงื่อนไขการเลือก คุณจะต้องส่งเทมเพลตบางตัวเป็นพารามิเตอร์ ในการสร้างเทมเพลตมีสิ่งที่เรียกว่าสัญลักษณ์บริการ
ตัวอย่างเช่น อักขระ "%" อนุญาตให้มีลำดับอักขระใดก็ได้:
มีอักขระพิเศษอื่น ๆ :
- % (เปอร์เซ็นต์) - อนุญาตการเรียงลำดับอักขระตามอำเภอใจ
- _ (ขีดล่าง) - อักขระเดี่ยวใดๆ
- […] – อักขระหนึ่งตัวจากที่อยู่ในวงเล็บ นอกจากการแสดงรายการอักขระแล้ว คุณยังสามารถใช้ช่วงได้ ตัวอย่าง: a-o;
- [^...] – เช่นเดียวกับอันก่อนหน้า แต่กลับกัน เครื่องหมาย "^" หมายถึงการปฏิเสธ
ผู้ดำเนินการ ชอบช่วยให้คุณสามารถเปรียบเทียบข้อมูลประเภทสตริงในการสืบค้นที่อยู่ทางด้านซ้ายของตัวดำเนินการกับข้อมูลประเภทสตริงที่อยู่ทางด้านขวาของตัวดำเนินการ ผลลัพธ์ของการเปรียบเทียบจะประเมินว่าเป็นจริงหรือเท็จ ดังนั้นการเปรียบเทียบสามารถใช้เป็นเงื่อนไขได้
สำหรับผู้ปฏิบัติงาน ชอบมีอักขระบริการพิเศษที่ไม่ถือเป็นสตริง:
- สัญลักษณ์เปอร์เซ็นต์ "%": ระบุถึงจำนวนอักขระที่ต้องการในสตริง
- "[...]" อักขระหนึ่งตัวขึ้นไปในวงเล็บเหลี่ยม: บ่งชี้ว่ามีอักขระใด ๆ ในรายการอยู่ นอกจากนี้ยังสามารถระบุช่วงของอักขระได้ (ตัวอย่าง)
- ขีดล่าง "_": บ่งชี้ถึงการมีอยู่ของอักขระที่กำหนดเอง
- อักขระปฏิเสธ "[^...]": หมายถึงการมีอยู่ของอักขระเดี่ยวใดๆ นอกเหนือจากที่ระบุไว้ในวงเล็บเหลี่ยม
คุณสมบัติการใช้งานกับ DBMS ต่างๆ
ไอบีเอ็ม DB2"สามารถวางได้เฉพาะพารามิเตอร์ทางด้านขวาของตัวดำเนินการ SIMILAR อักขระตัวแทนเท่านั้นคือ "_" (ขีดล่างหมายถึงอักขระใดๆ) และ "%" (เปอร์เซ็นต์หมายถึงลำดับของอักขระใดๆ)กรณีใช้ DBMS" PostgreSQL" หรือ " ฐานข้อมูลออราเคิล"อักขระพิเศษ "วงเล็บเหลี่ยม [...]" สามารถใช้ได้เฉพาะในกรณีที่ระบุไว้ในข้อความในคำขอ และจะไม่ส่งผ่านเป็นพารามิเตอร์ไปยังคำขอ
ดังนั้นในฐานข้อมูลไฟล์ อักขระพิเศษจะถูกรับรู้ในลักษณะเดียวกันเสมอ และแตกต่างกันขึ้นอยู่กับ DBMS ที่ใช้ในเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์
ตัวอย่าง: เลือกผลิตภัณฑ์ที่มีสัญลักษณ์ "%" ในชื่อ
เลือก | Ref.Link |จาก | สารบบ ระบบการตั้งชื่อ HOW Ref | WHERE | Ref.Name เช่น "%\%" ตัวละครพิเศษ "\"ตัวอย่าง เลือกสินค้าที่ชื่อขึ้นต้นด้วยคำว่า Tank
เลือก | Ref.Link |จาก | สารบบ ระบบการตั้งชื่อ HOW Ref | WHERE | ชื่อผู้อ้างอิงคล้ายกับ "Bak%"ตัวอย่าง: เลือกผลิตภัณฑ์ที่มีชื่อลงท้ายด้วยตัวเลข
เลือก | Ref.Link |จาก | สารบบ ระบบการตั้งชื่อ HOW Ref | WHERE | ชื่อผู้อ้างอิงคล้ายกับ "%"ตัวดำเนินการ SIMILAR ในแบบสอบถามจะตรวจสอบค่าสตริงจากตารางเพื่อดูว่ามีความคล้ายคลึงกับรูปแบบหรือไม่
มันถูกใช้ดังนี้: สตริงที่จะตรวจสอบจะถูกวางไว้ทางด้านซ้ายของโอเปอเรเตอร์นี้ และวางรูปแบบไว้ทางด้านขวา
หลังจากตรวจสอบแล้ว จะคืนค่า True หรือ False ดังนั้นจึงมีการใช้อย่างแข็งขันในเงื่อนไข
อักขระบริการต่อไปนี้ใช้เพื่อสร้างเทมเพลต:
- % (เปอร์เซ็นต์) - ลำดับที่มีอักขระที่กำหนดเองจำนวนเท่าใดก็ได้
- _ (ขีดล่าง) - อักขระหนึ่งตัว
- […] (อักขระหนึ่งตัวขึ้นไปในวงเล็บเหลี่ยม) - อักขระเดี่ยวใด ๆ ที่อยู่ในวงเล็บเหลี่ยม
ยกเว้นเช่นกัน ตัวละครต่างๆคุณสามารถใช้ช่วงได้ เช่น a-z(A-z) ซึ่งหมายความว่ามีอักขระใดๆ รวมอยู่ในช่วง รวมถึงจุดสิ้นสุดของช่วงด้วย - [^...] (ในวงเล็บเหลี่ยม เครื่องหมายลบตามด้วยอักขระหนึ่งตัวขึ้นไป) - อักขระเดี่ยวใดๆ นอกเหนือจากที่แสดงไว้หลังเครื่องหมายปฏิเสธ
สัญลักษณ์ที่เหลือจะถูกนำมาใช้ตามวัตถุประสงค์ที่ตั้งใจไว้
หากจำเป็นต้องส่งอักขระบริการตัวใดตัวหนึ่งข้างต้นเป็นสัญลักษณ์ จะต้องนำหน้าด้วย<Спецсимвол>. ตัวฉันเอง<Спецсимвол>(สัญลักษณ์ใด ๆ ที่เหมาะสม) ถูกกำหนดไว้ในข้อความเดียวกันหลังจากนั้น คำสำคัญสัญลักษณ์พิเศษ
ตัวอย่างเช่น รูปแบบ “%ABV[abvg]\_abv%” SPECIAL CHARACTER “\” หมายถึงสตริงย่อยที่ประกอบด้วยลำดับอักขระ:
ตัวอักษร ก; ตัวอักษร B; ตัวอักษร B; หนึ่งหลัก; หนึ่งในตัวอักษร a, b, c หรือ d; ขีดเส้นใต้; ตัวอักษร ก; ตัวอักษรข; ตัวอักษรโวลต์
นอกจากนี้ ลำดับนี้สามารถนำหน้าด้วยชุดอักขระที่กำหนดเองได้
ขั้นตอน เลือกข้อตกลงที่มีInNameText(mText)
//ในคำขอ เราจะใช้เทมเพลตเช่น "%" + mText + "%" Request = New Request; Query.SetParameter("ชื่อ", "%" + ข้อความ + "%"); Request.Text = "SELECT | Agreements. Link, | Agreements. Owner | FROM | Directory. Contracts of Counterparties AS Agreements | | WHERE | Agreements. Name SIMILAR & Name"; ผลลัพธ์ = Query.Run(); การเลือก = ผลลัพธ์เลือก (); รายงาน("ข้อตกลงที่มีอยู่ในชื่อ: " + mText + " มีคู่สัญญาดังต่อไปนี้"); ในขณะที่รายงานรอบ Selection.Next() ("คู่สัญญา: " + Selection.Owner + "; ข้อตกลง: " + Selection. Link EndIf; EndProcedure
43
NULL – ค่าที่หายไป อย่าสับสนกับค่าศูนย์! NULL ไม่ใช่ตัวเลข ไม่เท่ากับช่องว่าง การอ้างอิงว่างเปล่า หรือไม่ได้กำหนด NULL คือค่าที่สร้างประเภท เช่น มีประเภท NULL และค่าเดียวของประเภทนี้ โมฆะ...
26
ในการสร้างและดำเนินการสืบค้นไปยังตารางฐานข้อมูลในแพลตฟอร์ม 1C จะใช้วัตถุพิเศษของภาษาการเขียนโปรแกรมสืบค้น วัตถุนี้ถูกสร้างขึ้นโดยการเรียกโครงสร้างคำขอใหม่ สะดวกขอ...
18
บทความนี้นำเสนอเทคนิคที่เป็นประโยชน์เมื่อทำงานกับแบบสอบถาม 1C v.8.2 รวมถึงข้อมูลที่ไม่ค่อยทราบเกี่ยวกับภาษาของแบบสอบถาม ฉันไม่ได้พยายามให้คำอธิบายที่สมบูรณ์ของภาษาคิวรี แต่ต้องการให้อยู่เฉพาะใน...
12
ฉันต้องเผชิญกับงานเลือกเอกสารการชำระเงินทั้งหมดและจัดกลุ่มตามประเภทเอกสาร! เมื่อได้ดูที่อยู่อาศัยและบริการชุมชนและอินเทอร์เน็ตทั้งหมดแล้ว ฉันจึงตระหนักได้ วิธีง่ายๆ get Document type ไม่อยู่ในคำขอ: (ฉันต้อง...