PostgreSQL ฟังก์ชัน SUBSTRING() พร้อมตัวอย่าง Regex

ความหมายของ PostgreSQL สตริงย่อย?

การขอ PostgreSQL ฟังก์ชัน substring ช่วยให้คุณยกตัวอย่างได้tract และส่งคืนส่วนหนึ่งของสตริง แทนที่จะส่งคืนสตริงทั้งหมด มันจะส่งคืนเพียงส่วนหนึ่งของสตริงเท่านั้น

วากยสัมพันธ์

การขอ PostgreSQL ฟังก์ชัน substring มีรูปแบบดังต่อไปนี้:

substring( string [from starting_position] [for length] )

พารามิเตอร์

ชื่อ Descriptไอออน
เชือก สตริงต้นทางที่มีประเภทข้อมูลเป็น varchar, char, string ฯลฯ
การเริ่มต้น_ตำแหน่ง นี่เป็นพารามิเตอร์เสริม ระบุตำแหน่งที่อดีตtracการประมวลผลสตริงจะเริ่มต้นขึ้น หากคุณละเว้นพารามิเตอร์นี้ ตัวอย่างจะไม่แสดงผลtracการแสดงผลจะเริ่มต้นจากตำแหน่งที่ 1 ซึ่งเป็นอักขระตัวแรกในสตริง
ความยาว เป็นพารามิเตอร์เสริม ระบุจำนวนอักขระที่จะส่งออกtracted จากสตริง หากคุณละเว้นพารามิเตอร์นี้ ฟังก์ชันจะทำงานtract จากตำแหน่งเริ่มต้นจนถึงจุดสิ้นสุดของสตริง

ตัวอย่าง

ในตัวอย่างนี้ เราต้องการยกตัวอย่างtracตัวอักษร 4 ตัวแรกจากคำ Guru99:

SELECT substring('Guru99' for 4);

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

เราไม่ได้ระบุตำแหน่งเริ่มต้น ดังนั้น...tracส่วนของสตริงย่อยเริ่มต้นที่ตำแหน่งที่ 1 มีอักขระ 4 ตัวtracted เพื่อส่งคืนข้อมูลข้างต้น

ตัวอย่างต่อไปนี้จะแสดงวิธีการระบุตำแหน่งเริ่มต้น:

SELECT substring('Guru99' from 1 for 4);

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

เราได้ระบุว่าอดีตtracส่วนของสตริงย่อยควรเริ่มต้นจากตำแหน่งที่ 1 และควรมีอักขระอย่างน้อย 4 ตัวtracเท็ด

ลองยกตัวอย่างดูtract 99 จากสตริง Guru99:

SELECT substring('Guru99' from 5);

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

เรากำหนดตำแหน่งเริ่มต้นเป็น 5 เนื่องจากจำนวนอักขระที่จะยกมานั้น...tracไม่ได้ระบุรายละเอียด อดีตtraction วิ่งไปจนสุดสาย

นี่เป็นอีกตัวอย่างหนึ่ง:

SELECT substring('Guru99' from 5 for 2);

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

เราได้เริ่มต้นแล้วtracมีการแก้ไขที่ตำแหน่งที่ 5 และมีอักขระ 2 ตัวที่ถูกลบออกtracเท็ด

พิจารณาตารางหนังสือที่ระบุด้านล่าง:

PostgreSQL สตริงย่อย

เราต้องการทราบชื่อคร่าวๆ ของหนังสือแต่ละเล่ม อย่างไรก็ตาม เราสามารถยกตัวอย่างได้tracเฉพาะ 15 ตัวอักษรแรกจากคอลัมน์ชื่อของตารางเท่านั้น:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

ตอนนี้เรามีไอเดียคร่าวๆ เกี่ยวกับชื่อหนังสือทุกเล่มแล้ว

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

In PostgreSQLเราสามารถยกตัวอย่างได้tracฟังก์ชัน substring ใช้สำหรับค้นหาสตริงย่อยที่ตรงกับนิพจน์ปกติ POSIX ที่ระบุ ในกรณีนี้ จะใช้ฟังก์ชัน substring ด้วยไวยากรณ์ดังต่อไปนี้:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

นี่คือคำอธิบายของพารามิเตอร์ข้างต้น:

สตริงคือสตริงต้นทางที่มี ประเภทข้อมูล คือ varchar, char, string เป็นต้น

matching_pattern คือรูปแบบที่จะใช้ในการค้นหาในสตริง

ตัวอย่าง

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

คำสั่งจะส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

สตริงที่เราป้อนคือ "อายุของคุณคือ 22" ในรูปแบบการค้นหา เรากำลังค้นหารูปแบบตัวเลขในสตริงของเรา เมื่อพบแล้ว ฟังก์ชัน substring ควรแสดงเฉพาะตัวเลขเท่านั้นtract สองตัวอักษร

วิธีจับคู่สตริงย่อยโดยใช้ pgAdmin

ตอนนี้เรามาดูวิธีการดำเนินการโดยใช้ pgAdmin

แบบสอบถามด้านบนที่เราไม่ต้องการฐานข้อมูลสามารถดำเนินการได้โดยตรงจากหน้าต่างตัวแก้ไขแบบสอบถาม เพียงทำดังต่อไปนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชีของคุณ
เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2) บน pgAdmin
คลิกไอคอนเครื่องมือ Query

การจับคู่สตริงย่อยโดยใช้ pgAdmin

หน้าต่างตัวแก้ไขแบบสอบถามจะเปิดขึ้น

ขั้นตอน 3) พิมพ์แบบสอบถาม
พิมพ์แบบสอบถามต่อไปนี้ในหน้าต่างแก้ไข

SELECT substring('Guru99' for 4);

ขั้นตอน 4) ดำเนินการค้นหา
คลิกไอคอนดำเนินการเพื่อดำเนินการค้นหา

การจับคู่สตริงย่อยโดยใช้ pgAdmin

ขั้นตอน 5) การดำเนินการค้นหาเสร็จสิ้น
ควรส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยโดยใช้ pgAdmin

2 ตัวอย่าง:

SELECT substring('Guru99' from 1 for 4);

ควรส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยโดยใช้ pgAdmin

นี่คือตัวอย่างถัดไป:

SELECT substring('Guru99' from 5);

ควรส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยโดยใช้ pgAdmin

3 ตัวอย่าง:

SELECT substring('Guru99' from 5 for 2);

ควรส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยโดยใช้ pgAdmin

ตอนนี้ ให้เรารันตัวอย่างโดยใช้ตาราง Book ของฐานข้อมูล Demo:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2)

  1. จากแถบนำทางทางด้านซ้ายให้คลิกฐานข้อมูล
  2. คลิกสาธิต

การจับคู่สตริงย่อยโดยใช้ pgAdmin

ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

ขั้นตอน 4) คลิกปุ่มดำเนินการ

การจับคู่สตริงย่อยโดยใช้ pgAdmin

ควรส่งคืนสิ่งต่อไปนี้:

PostgreSQL สตริงย่อย

ตอนนี้เรามีแนวคิดพื้นฐานเกี่ยวกับชื่อหนังสือทุกเล่มแล้ว

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

หากต้องการทำสิ่งเดียวกันบน pgAdmin ให้ทำดังต่อไปนี้:

ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ

ขั้นตอน 2) คลิกไอคอนเครื่องมือ Query

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

หน้าต่างตัวแก้ไขแบบสอบถามจะเปิดขึ้น

ขั้นตอน 3) พิมพ์แบบสอบถามต่อไปนี้ในหน้าต่างแก้ไข

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

ขั้นตอน 4) คลิกไอคอนดำเนินการเพื่อดำเนินการค้นหา

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

ควรส่งคืนสิ่งต่อไปนี้:

การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL

สรุป

  • การขอ PostgreSQL ฟังก์ชัน Substring ช่วยในการ เช่นtracการส่งคืนค่าเพียงบางส่วนของสตริง
  • อักขระตัวแรกของสตริงอยู่ที่ตำแหน่ง 1
  • หากจำนวนอักขระที่จะส่งออกtracหากไม่ได้ระบุค่า ted จากสตริง ฟังก์ชันจะทำงานtracอักขระ t ตัว จากตำแหน่งเริ่มต้นที่ระบุไปจนถึงจุดสิ้นสุดของสตริง
  • หากจำนวนอักขระที่จะส่งออกtracหากระบุ ted แล้ว จะแสดงเฉพาะจำนวนอักขระตามนั้นเท่านั้นtracเท็ด

ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้

สรุปโพสต์นี้ด้วย: