PostgreSQL ฟังก์ชัน SUBSTRING() พร้อมตัวอย่าง Regex
⚡ สรุปอย่างชาญฉลาด
PostgreSQL ซับสตริง เช่นtracts เป็นฟังก์ชันที่ส่งคืนส่วนหนึ่งของสตริง โดยใช้ตำแหน่งเริ่มต้นและความยาวที่เป็นตัวเลือก และยังใช้การจับคู่ข้อความกับนิพจน์ปกติของ POSIX เพื่อดึงรูปแบบต่างๆ เช่น ตัวเลขหรือรหัสออกมา

ความหมายของ PostgreSQL สตริงย่อย?
การขอ PostgreSQL ฟังก์ชัน substring ช่วยให้คุณยกตัวอย่างได้tracฟังก์ชันนี้จะส่งคืนส่วนหนึ่งของสตริง แทนที่จะส่งคืนสตริงทั้งหมด ซึ่งมีประโยชน์สำหรับการตัดแต่งโค้ดและการอ่านฟิลด์ที่มีความกว้างคงที่
วากยสัมพันธ์
การขอ PostgreSQL ฟังก์ชัน substring มีรูปแบบดังต่อไปนี้:
substring( string [from starting_position] [for length] )
พารามิเตอร์
พารามิเตอร์ต่อไปนี้ใช้กับฟังก์ชัน substring:
| เชือก | สตริงต้นทางที่มีประเภทข้อมูลเป็น varchar, char, string ฯลฯ |
| การเริ่มต้น_ตำแหน่ง | พารามิเตอร์เสริม ระบุตำแหน่งที่อดีตtracการประมวลผลสตริงจะเริ่มต้นขึ้น หากคุณละเว้นพารามิเตอร์นี้ ตัวอย่างจะไม่แสดงผลtraction เริ่มต้นจากตำแหน่งที่ 1 ซึ่งเป็นอักขระตัวแรกในสตริง |
| ความยาว | พารามิเตอร์เสริม ระบุจำนวนอักขระที่จะส่งออกtracted จากสตริง หากคุณละเว้นพารามิเตอร์นี้ ฟังก์ชัน extracts จากตำแหน่งเริ่มต้นจนถึงจุดสิ้นสุดของสตริง |
ตัวอย่าง
ในตัวอย่างนี้ เราต้องการยกตัวอย่างtracตัวอักษร 4 ตัวแรกจากคำ Guru99:
SELECT substring('Guru99' for 4);
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
เราไม่ได้ระบุตำแหน่งเริ่มต้น ดังนั้น...tracการแยกส่วนย่อยเริ่มต้นที่ตำแหน่งที่ 1 มีอักขระสี่ตัวtracted จะส่งคืนค่าผลลัพธ์ข้างต้น
ตัวอย่างต่อไปนี้จะแสดงวิธีการระบุตำแหน่งเริ่มต้น:
SELECT substring('Guru99' from 1 for 4);
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
เราได้ระบุว่าอดีตtracส่วนของสตริงย่อยควรเริ่มต้นจากตำแหน่งที่ 1 และควรมีอักขระอย่างน้อย 4 ตัวtracเท็ด
ลองยกตัวอย่างดูtract 99 จากสตริง Guru99:
SELECT substring('Guru99' from 5);
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
เรากำหนดตำแหน่งเริ่มต้นเป็น 5 เนื่องจากจำนวนอักขระที่จะยกมานั้น...tracไม่ได้ระบุรายละเอียด อดีตtraction วิ่งไปจนสุดสาย
นี่เป็นอีกตัวอย่างหนึ่ง:
SELECT substring('Guru99' from 5 for 2);
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
เราเริ่มต้นจากอดีตtracมีการแก้ไขที่ตำแหน่งที่ 5 และมีอักขระ 2 ตัวtracเท็ด
พิจารณาตารางหนังสือที่ระบุด้านล่าง:
เราต้องการทราบชื่อคร่าวๆ ของหนังสือแต่ละเล่ม เราสามารถยกตัวอย่างได้tracเฉพาะ 15 ตัวอักษรแรกจากคอลัมน์ชื่อของตารางเท่านั้น:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
ตอนนี้เรามีไอเดียคร่าวๆ เกี่ยวกับชื่อหนังสือทุกเล่มแล้ว
การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL
In PostgreSQLคุณสามารถยกตัวอย่างได้tracสตริงย่อยที่ตรงกับนิพจน์ปกติ 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;
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
สตริงอินพุตของเราคือ "อายุของคุณคือ 22" ในรูปแบบการค้นหา เราจะค้นหารูปแบบตัวเลข เมื่อพบแล้ว ฟังก์ชันย่อย ex จะทำงานtracมีแค่สองตัวอักษรเท่านั้น
วิธีการจับคู่สตริงย่อยโดยใช้ pgAdmin
ต่อไปนี้เราจะมาดูวิธีการดำเนินการเหล่านี้โดยใช้ pgAdmin กัน คำสั่ง SQL ที่ไม่จำเป็นต้องใช้ฐานข้อมูลสามารถเรียกใช้ได้โดยตรงจากหน้าต่างแก้ไขคำสั่ง SQL เพียงทำตามขั้นตอนต่อไปนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2) ใน pgAdmin ให้คลิกไอคอนเครื่องมือค้นหา (Query Tool)
หน้าต่างตัวแก้ไขแบบสอบถามจะเปิดขึ้น
ขั้นตอน 3) พิมพ์คำสั่งต่อไปนี้ลงในช่องแก้ไขข้อความ
SELECT substring('Guru99' for 4);
ขั้นตอน 4) คลิกไอคอนดำเนินการเพื่อดำเนินการค้นหา
ขั้นตอน 5) การดำเนินการคิวรีเสร็จสิ้นแล้ว ผลลัพธ์ที่ได้ควรเป็นดังต่อไปนี้:
2 ตัวอย่าง:
SELECT substring('Guru99' from 1 for 4);
ควรส่งคืนสิ่งต่อไปนี้:
นี่คือตัวอย่างถัดไป:
SELECT substring('Guru99' from 5);
ควรส่งคืนสิ่งต่อไปนี้:
3 ตัวอย่าง:
SELECT substring('Guru99' from 5 for 2);
ควรส่งคืนสิ่งต่อไปนี้:
ตอนนี้ ให้เรารันตัวอย่างโดยใช้ตาราง Book ของฐานข้อมูล Demo:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2) จากแถบนำทางด้านซ้าย คลิก ฐานข้อมูล จากนั้นคลิก สาธิต
ขั้นตอน 3) พิมพ์แบบสอบถามในตัวแก้ไขแบบสอบถาม:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
ขั้นตอน 4) คลิกปุ่มดำเนินการ
ควรส่งคืนสิ่งต่อไปนี้:
ตอนนี้เรามีแนวคิดพื้นฐานเกี่ยวกับชื่อหนังสือทุกเล่มแล้ว
การจับคู่สตริงย่อยกับนิพจน์ปกติของ SQL
หากต้องการทำสิ่งเดียวกันบน pgAdmin ให้ทำดังต่อไปนี้:
ขั้นตอน 1) เข้าสู่ระบบบัญชี pgAdmin ของคุณ
ขั้นตอน 2) คลิกไอคอนเครื่องมือ Query
หน้าต่างตัวแก้ไขแบบสอบถามจะเปิดขึ้น
ขั้นตอน 3) พิมพ์คำสั่งต่อไปนี้ลงในช่องแก้ไขข้อความ
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
ขั้นตอน 4) คลิกไอคอนดำเนินการเพื่อดำเนินการค้นหา
ควรส่งคืนสิ่งต่อไปนี้:
ดาวน์โหลดฐานข้อมูลที่ใช้ในบทช่วยสอนนี้



















