Coalesce sql: คำอธิบายคุณลักษณะการใช้งานตัวอย่าง

เมื่อเขียนคำสั่ง sql มันมักจะเกิดขึ้นสถานการณ์เมื่อดึงข้อมูลจำเป็นต้องเปรียบเทียบค่าของหลายคอลัมน์และแสดงค่าที่มีข้อมูล (ไม่ว่างเปล่า) นิพจน์ Coalesce แก้ปัญหานี้ได้อย่างสมบูรณ์แบบ ในบทความนี้ คุณจะพบคำอธิบายที่สมบูรณ์ของนิพจน์ Coalesce sql คำอธิบายคุณลักษณะการใช้งาน ตลอดจนตัวอย่าง

รวมคำอธิบาย sql

การแสดงค่าที่ไม่ว่างเปล่าด้วย Coalesce ลักษณะเฉพาะ

พิจารณาคุณสมบัติการใช้งาน SQL Coalesce:

  1. อนุญาตให้ระบุอาร์กิวเมนต์จำนวนเท่าใดก็ได้ (ต่างจาก Isnull / Nvl / Nvl2 ซึ่งมีจำนวนอาร์กิวเมนต์ที่จำกัด)
  2. สามารถใช้แบบสอบถามย่อยเป็นอาร์กิวเมนต์
  3. ส่งกลับผลลัพธ์เท่ากับ คนแรก ค่าที่ไม่ใช่ค่า Null หรือค่า Null หากไม่พบค่าที่ไม่ใช่ค่า Null
  4. สามารถใช้ SQL Coalesce ในส่วน Select เพื่อเลือกค่าที่ไม่ว่างเปล่า และยังสามารถใช้ใน Where to ชี้แจงว่าไม่อนุญาตให้ใช้ชุดของคอลัมน์ที่มีค่าว่าง (/ อนุญาต)
  5. นิพจน์นี้เหมือนกับการใช้นิพจน์กรณีซึ่งตรวจสอบแต่ละอาร์กิวเมนต์ตามลำดับสำหรับเงื่อนไข เมื่ออาร์กิวเมนต์1 ไม่เป็นโมฆะ อาร์กิวเมนต์1 โดยพื้นฐานแล้ว Coalesce เป็นช็อตคัทเพื่อความสะดวกในการใช้งาน และใน DBMS หลายๆ ตัว ตัวเพิ่มประสิทธิภาพการสืบค้นจะเขียนนิพจน์ Coalesce ใหม่เป็น Case
  6. ฟังก์ชัน sql Coalesce พบได้ในระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ชั้นนำทั้งหมด

sql รวมกัน

รวมไวยากรณ์

ใครที่เคยใช้Coalesceที่การเขียน sql-queries รู้ว่าไวยากรณ์ของนิพจน์นี้ง่ายมาก การระบุอาร์กิวเมนต์ที่ทดสอบสำหรับ Null ในวงเล็บก็เพียงพอแล้ว โดยคั่นด้วยเครื่องหมายจุลภาค หากเราคิดว่าอาร์กิวเมนต์ชื่อ arg1, arg2, ... argN ไวยากรณ์สำหรับ Coalesce จะเป็นดังนี้:

รวมตัวกัน (arg1, arg2, ... argN)

ฟังก์ชั่นการรวม sql

มาเตรียมตารางหลายตารางเพื่อศึกษากลไกของนิพจน์นี้

เตรียมโต๊ะ

เพื่อให้เข้าใจคำอธิบายของ Coalesce sql มากขึ้น ให้สร้างตารางสองตารางในฐานข้อมูลที่มีข้อมูลเกี่ยวกับวัตถุอสังหาริมทรัพย์

ให้ตารางแรก พื้นที่ ประกอบด้วยชื่อของอ็อบเจ็กต์อสังหาริมทรัพย์และพื้นที่ของอ็อบเจ็กต์ สามารถระบุพื้นที่ได้ (area_yt) หรือประกาศ (area_decl)

id

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 ที่สอง letมีข้อมูลเกี่ยวกับคุณสมบัติหลักของวัตถุอสังหาริมทรัพย์ - ส่วนขยาย, ความลึก, พื้นที่, ขอบเขต, ความสูง

id

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, รวมกัน (Area.area_yt, Area.area_decl)

จากพื้นที่

และรับผลลัพธ์:

id

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 ช่วยให้คุณสามารถตัดออกจากผลลัพธ์บรรทัดเหล่านั้นซึ่งค่าของรายการเขตข้อมูลว่างเปล่า สถานการณ์นี้เกิดขึ้นทุกที่ ตัวอย่างเช่น ที่องค์กร เมื่อลงทะเบียนพนักงานใหม่ จะมีการป้อนข้อมูลพื้นฐานเกี่ยวกับเขาลงในฐานข้อมูลเท่านั้น และการกรอกข้อมูลโดยละเอียดจะเหลือ "ไว้ใช้ภายหลัง" ค่อยๆ "ช่องว่าง" เกิดขึ้น - ก่อนเช็คหรือเมื่อส่งพนักงานในวันหยุด / เดินทางไปทำธุรกิจ / ลาป่วย

ให้เราเลือกจากตารางที่มีคุณสมบัติหลักของวัตถุอสังหาริมทรัพย์ที่ไม่มีค่าลักษณะเฉพาะ:

SELECT id, object_name

จาก Basic_characteristic

โดยที่การรวม (ส่วนขยาย, ความลึก, พื้นที่, ขอบเขต, ความสูง) เป็นโมฆะ

สำหรับแบบสอบถามนี้มีการจับคู่หนึ่งรายการในตาราง - ออบเจ็กต์ "ที่ดิน 1" ซึ่งฟิลด์ทั้งหมดที่มีคุณสมบัติจะว่างเปล่า:

id

object_name

4

ที่ดิน 1

sql รวมคุณสมบัติการใช้งาน

เราหวังว่าคำอธิบาย Coalesce sql โดยละเอียดของเราจะช่วยให้คุณเข้าใจคุณลักษณะทั้งหมดของการใช้นิพจน์นี้ รวมทั้งจัดการกับความแตกต่างที่สำคัญ