คอมพิวเตอร์, ซอฟต์แวร์
Coalesce sql: คำอธิบายการใช้งานตัวอย่าง
เมื่อรวบรวมข้อความค้นหา sql มักเกิดขึ้นเมื่อคุณเลือกข้อมูลคุณต้องเปรียบเทียบค่าของคอลัมน์หลายคอลัมน์และส่งออกข้อมูลหนึ่งชุดที่มีข้อมูล (ไม่ว่าง) ปัญหานี้ได้รับการแก้ไขอย่างสมบูรณ์โดยการนิพจน์ Coalesce ในบทความนี้คุณจะพบคำอธิบายที่สมบูรณ์ของนิพจน์ Coalesce sql คำอธิบายคุณลักษณะการใช้งานรวมถึงตัวอย่าง
ผลลัพธ์ของค่าที่ไม่ใช่ค่า null โดยใช้ Coalesce คุณสมบัติ
พิจารณา Sql Coalesce คุณสมบัติของการใช้:
- อนุญาตให้ระบุอาร์กิวเมนต์จำนวนใด ๆ (ตรงกันข้ามกับ Isnull / Nvl / Nvl2 จำนวนอาร์กิวเมนต์ที่ จำกัด )
- สามารถยอมรับ subqueries เป็นอาร์กิวเมนต์ได้
- ส่งกลับค่าผลลัพธ์เท่ากับค่าที่ไม่ใช่ค่าแรกหรือ Null ถ้าไม่มีค่า
- Sql Coalesce สามารถใช้ใน Select clause เพื่อเลือกค่าที่ไม่ว่างเปล่าและใน Where เพื่อระบุว่าชุดของคอลัมน์ที่มีค่าว่างเปล่าไม่ได้รับอนุญาต (/ allowed)
- นิพจน์นี้เทียบเท่ากับการใช้นิพจน์ของ Case ซึ่งจะตรวจสอบอาร์กิวเมนต์แต่ละครั้งติดต่อกันสำหรับเงื่อนไขเมื่ออาร์กิวเมนต์ 1 ไม่ใช่ null หลังจากนั้นอาร์กิวเมนต์ 1 ในความเป็นจริง Coalesce เป็นทางลัดที่ออกแบบมาเพื่อความสะดวกในการใช้งานและในตัวค้นหาแบบสอบถาม DBMS จำนวนมากได้เขียนนิพจน์ Coalesce ไว้ใน Case
- คุณสมบัติ Sql Coalesce มีอยู่ใน ระบบจัดการฐานข้อมูล เชิงสัมพันธ์ชั้นนำทั้งหมด
รวมไวยากรณ์
ทุกคนที่เคยใช้ Coalesce เพื่อรวบรวมข้อความค้นหา sql รู้ว่าไวยากรณ์ของนิพจน์นี้ง่ายมาก ก็เพียงพอที่จะระบุในอาร์กิวเมนต์วงเล็บที่มีการตรวจสอบใน Null คั่นด้วยเครื่องหมายจุลภาค ถ้าเราสมมติว่าอาร์กิวเมนต์มีชื่อ arg1, arg2, ... argN แล้วไวยากรณ์ Coalesce จะมีลักษณะดังนี้:
Coalesce (arg1, arg2, ... argN)
เราจะจัดทำตารางต่างๆเพื่อศึกษากลไกของการแสดงออกนี้
การเตรียมตาราง
เพื่อทำความเข้าใจ Coalesce sql description เราจะสร้างฐานข้อมูล 2 ตารางที่ประกอบด้วยข้อมูลเกี่ยวกับวัตถุอสังหาริมทรัพย์
ตารางพื้นที่แรกควรมีชื่อของวัตถุอสังหาริมทรัพย์และพื้นที่ของพวกเขา สามารถระบุพื้นที่ได้ (area_yt) หรือประกาศ (area_decl)
รหัส | object_name | area_yt | area_decl |
1 | อาคาร 1 | 116.2 | 114 |
2 | วัตถุก่อสร้างที่ยังไม่เสร็จ 1 | 568 | |
3 | ห้องที่ 1 | 64.7 | |
4 | ห้องที่ 2 | 34.2 | |
5 | แปลงที่ดิน 1 | 112 | 111.6 |
6 | สิ่งอำนวยความสะดวก 1 | ||
7 | ห้องที่ 3 | 27.9 | |
8 | การก่อสร้าง 2 | 37.2 | 36.4 |
9 | อาคาร 2 |
ตาราง Basic_characteristic ข้อที่สองควรมีข้อมูลเกี่ยวกับลักษณะสำคัญของอสังหาริมทรัพย์ - ส่วนขยายความลึกพื้นที่ขอบเขตขอบเขต
รหัส | object_name | ขยาย | ความลึก | พื้นที่ | ขอบเขต | ความสูง |
1 | อาคาร 1 | 892.4 | 30 | |||
2 | อาคาร 2 | 48 | ||||
3 | สิ่งอำนวยความสะดวก 1 | 164.7 | ||||
4 | แปลงที่ดิน 1 | |||||
5 | ห้องที่ 1 | 23.6 | ||||
6 | ห้องที่ 2 | 34.7 | ||||
7 | ห้องที่ 3 | 19.8 |
เราตรวจสอบไวยากรณ์ของ Coalesce sql คำอธิบายลักษณะการใช้งานและดำเนินการกับตัวอย่างโดยตรง
ตัวอย่างการใช้งาน
ไวยากรณ์ของการแสดงออก Coalesce เป็นเรื่องง่ายมาก แต่สิ่งสำคัญคือต้องจำไว้ว่าผลลัพธ์ของคำสั่งจะเป็นค่าที่ไม่ว่างเปล่า FIRST ที่พบจากรายการอาร์กิวเมนต์ ข้อสังเกตนี้มีความสำคัญมากดังนั้นอาร์กิวเมนต์ในการแสดงออกต้องอยู่ในลำดับความสำคัญ วิธีที่ง่ายที่สุดในการทำความเข้าใจหลักการของตารางพื้นที่ ทำคำขอที่เลือกชื่อของพร็อพเพอร์ตี้รวมทั้งค่าพื้นที่:
เลือก Area.id, Area.object_name, coalesce (Area.area_yt, Area.area_decl) จากพื้นที่ |
และรับผล:
รหัส | object_name | เชื่อมต่อกัน |
1 | อาคาร 1 | 116.2 |
2 | วัตถุก่อสร้างที่ยังไม่เสร็จ 1 | 568 |
3 | ห้องที่ 1 | 64.7 |
4 | ห้องที่ 2 | 34.2 |
5 | แปลงที่ดิน 1 | 112 |
6 | สิ่งอำนวยความสะดวก 1 | |
7 | ห้องที่ 3 | 27.9 |
8 | การก่อสร้าง 2 | 37.2 |
9 | อาคาร 2 |
สำหรับวัตถุ "อาคาร 1" "พล็อต 1" และ "อาคาร 2" ค่าพื้นที่ทั้งสองถูกเติมเต็ม แต่ในลำดับความสำคัญคือพื้นที่ที่ได้รับการขัดเกลาเนื่องจากเราได้ระบุไว้ในรายการอาร์กิวเมนต์เป็นอันดับแรก นิพจน์ Coalesce พบค่าที่ไม่ว่างเปล่าเป็นอันดับแรกและยกเลิกการหยุดการดูอาร์กิวเมนต์ต่อไป การก่อสร้างคำขอนี้ถูกต้องเนื่องจากพื้นที่ที่ระบุเจาะจงกว่าที่กำหนดไว้ ถ้าเราระบุพื้นที่ที่ประกาศเป็นอาร์กิวเมนต์แรกถ้าฟิลด์ตารางนี้เต็มแล้วก็จะเป็นลำดับความสำคัญ
นอกเหนือจากการใช้ใน Select แล้วมักใช้นิพจน์ Coalesce กับส่วน Where จะช่วยให้คุณสามารถตัดออกจากผลลัพธ์บรรทัดเหล่านี้ซึ่งรายการของช่องว่างเปล่า (หรือกลับกันให้รวมเฉพาะค่าเหล่านี้ในผลลัพท์ที่ไม่ได้ป้อนข้อมูลในฟิลด์) สถานการณ์นี้มีอยู่ทุกหนทุกแห่ง: ตัวอย่างเช่นในขณะที่ลงทะเบียนพนักงานใหม่จะมีการป้อนข้อมูลพื้นฐานเกี่ยวกับพนักงานเท่านั้นในฐานข้อมูลและข้อมูลรายละเอียดก็ถูกทิ้งไว้ "for later" ค่อยๆ "ช่องว่าง" ลอยขึ้น - ทั้งก่อนเช็คหรือเมื่อส่งพนักงานในวันหยุด / เดินทางธุรกิจ / ลาป่วย
เลือกจากตารางที่มีลักษณะสำคัญของวัตถุอสังหาริมทรัพย์ซึ่งไม่ได้กรอกค่าใด ๆ ของลักษณะ:
SELECT id, object_name จาก Basic_characteristic ที่รวมกัน (ส่วนขยาย, ความลึก, พื้นที่, ขอบเขต, ความสูง) เป็นโมฆะ |
สำหรับแบบสอบถามนี้จะมีคำที่ตรงกันในตารางซึ่ง ได้แก่ "พล็อต 1" ซึ่งในทุกฟิลด์ที่มีลักษณะว่างเปล่า:
รหัส | object_name |
4 | แปลงที่ดิน 1 |
เราหวังว่าคำอธิบายเกี่ยวกับ Coalesce sql รายละเอียดของเราจะช่วยให้คุณเข้าใจคุณลักษณะทั้งหมดของการใช้นิพจน์นี้รวมทั้งจัดการกับความแตกต่างที่สำคัญ
Similar articles
Trending Now