สร้างสตริงย่อยของสตริงใน PostgreSQL

Srang String Yxy Khxng String Ni Postgresql



มีกรณีที่คุณอาจต้องการแยกส่วนที่กำหนด (สตริงย่อย) ออกจากสตริง อาจเป็นได้ว่าคุณสนใจเฉพาะส่วนที่กำหนดและต้องการละส่วนอื่นของสตริงไว้ในเอาต์พุตของคุณ ลองนึกภาพกรณีที่คุณมีชื่อเต็ม เช่น “fname lname” เป็นสตริงเดียว และคุณต้องการแยกเฉพาะ “fname” ในเอาต์พุตของคุณเท่านั้น คุณต้องใช้ฟังก์ชันสตริงย่อย PostgreSQL เราได้เตรียมคำแนะนำโดยละเอียดให้ปฏิบัติตาม รวมถึงตัวอย่างเพื่อช่วยให้คุณเข้าใจว่าคุณสามารถสร้างสตริงย่อยของสตริงใน PostgreSQL ได้อย่างไร

ตัวอย่างเกี่ยวกับวิธีการสร้างสตริงย่อยของสตริงใน PostgreSQL

สิ่งแรกที่เราต้องตรวจสอบคือไวยากรณ์

SUBSTRING( สตริง/ชื่อคอลัมน์, start_position, ความยาว)

ในไวยากรณ์ที่กำหนด คุณสามารถระบุสตริงที่คุณต้องการสร้างสตริงย่อยหรือระบุคอลัมน์ในตารางของคุณได้ ถัดไป คุณต้องระบุตำแหน่งในสตริงที่คุณต้องการให้สตริงย่อยเริ่มต้น สุดท้าย ระบุความยาวของสตริงย่อยหรือตำแหน่งสิ้นสุดของสตริง เรามาดูตัวอย่างการใช้งานกัน







ตัวอย่างที่ 1: ระบุความยาวสตริงย่อย

เมื่อคุณมีสตริงเป้าหมายแล้ว คุณสามารถกำหนดความยาวของสตริงย่อยได้ ตัวอย่างเช่น หากคุณมีสตริงเป็น “Linuxhint” และต้องการสร้างสตริงย่อยเป็น “Linux” ให้ดำเนินการคำสั่งต่อไปนี้:



เลือก SUBSTRING ('Linuxhint' จาก 1 ต่อ 5) เป็นชื่อผู้ใช้;

เรากำลังใช้คีย์เวิร์ด FROM เพื่อระบุตำแหน่งเริ่มต้นของเรา และคีย์เวิร์ด FOR เพื่อระบุความยาวของสตริงย่อย “ชื่อผู้ใช้” คือชื่อที่เราตั้งให้กับผลลัพธ์ของเรา



เราได้รับผลลัพธ์ต่อไปนี้โดยดำเนินการคำสั่ง สังเกตว่าเราได้สตริงย่อยที่ต้องการเป็นผลลัพธ์อย่างไร:





สมมติว่าคุณต้องการสร้างสตริงย่อยจากตำแหน่งเริ่มต้นอื่นในสตริงของคุณ ตัวอย่างเช่น หากคุณต้องการให้ “hint” เป็นสตริงย่อย คุณเพียงแค่เปลี่ยนตำแหน่งเริ่มต้นและความยาว



เพื่อที่เราจะดำเนินการคำสั่งของเราดังต่อไปนี้:

ตัวอย่างที่ 2: ระบุตำแหน่งของสตริงย่อย

บางครั้งคุณอาจมีสตริงแต่คุณไม่ทราบความยาวที่แน่นอนของสตริงย่อย อย่างไรก็ตาม คุณสามารถระบุตำแหน่งที่จะเริ่มสร้างสตริงย่อยได้ เอาต์พุตจะแสดงส่วนสตริงทั้งหมดตั้งแต่ตำแหน่งที่ระบุจนถึงจุดสิ้นสุด

สำหรับตัวอย่างนี้ เรามีสตริงเป็น 'Hello Linuxhint' หากต้องการรับ “Linuxhint” เป็นสตริงย่อยโดยไม่ต้องระบุตำแหน่ง เราเพียงแต่ระบุตำแหน่งที่เราต้องการสร้างสตริงย่อยเท่านั้น ในกรณีนี้เราเริ่มจากตำแหน่งที่ 6 ดังนั้นคำสั่งของเราจึงเป็นดังนี้:

เลือก SUBSTRING ('Hello Linuxhint' จาก 6) เป็นชื่อผู้ใช้;

ตัวอย่างที่ 3: ระบุตำแหน่งเริ่มต้นและสิ้นสุด

ด้วยสตริง คุณสามารถสร้างสตริงย่อยได้โดยการระบุตำแหน่งเริ่มต้นและสิ้นสุด ด้วยวิธีนี้ แม้ว่าความยาวของสตริงจะยาวกว่าสตริงย่อยที่ต้องการ แต่จะสร้างสตริงตามตำแหน่งเริ่มต้นและสิ้นสุดที่ระบุเท่านั้น

การใช้ “Hello Linuxhint” เป็นสตริงของเรา เราสามารถสร้างสตริงย่อยของเราเป็น “Hello Linux” และละเว้นส่วนอื่นๆ โดยระบุตำแหน่งเริ่มต้นและสิ้นสุดดังต่อไปนี้:

เลือก SUBSTRING('Hello Linuxhint', 1, 11) AS ชื่อผู้ใช้;

ในกรณีนี้ไม่จำเป็นต้องใช้คีย์เวิร์ด เฉพาะตำแหน่งเริ่มต้นและสิ้นสุดเท่านั้น

ตัวอย่างที่ 4: การทำงานกับตาราง PostgreSQL

นอกจากนี้ยังสามารถสร้างสตริงย่อยตามค่าที่คุณเลือกจากคอลัมน์ที่ระบุในตารางได้อีกด้วย สำหรับตัวอย่างของเรา เราใช้ตาราง 'ลูกค้า'

สมมติว่าเรากำลังกำหนดเป้าหมายคอลัมน์ 'cust_email' และเราต้องการสร้างสตริงย่อยโดยการระบุความยาว เราก็จะมีคำสั่งดังนี้

โปรดทราบว่าสำหรับแต่ละค่าในคอลัมน์ ผลลัพธ์จะเป็นสตริงย่อยที่มีความยาว 3 ของสตริงต้นฉบับ

มาอัปเดตตารางด้วยชื่อเต็มในคอลัมน์ชื่อของเรากันดีกว่า ตารางใหม่ของเรามีลักษณะดังนี้:

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

ช่องว่างแสดงถึงการแยกระหว่างชื่อและนามสกุล ดังนั้นคำสั่งของเราจะตรวจสอบตำแหน่งที่ช่องว่างเริ่มต้นในสตริง จากนั้นเลือกสตริงย่อยจากตำแหน่งแรกไปยังตำแหน่งที่ตรงกับช่องว่าง

เรารันคำสั่งของเราดังนี้:

SELECT order_id, SUBSTRING (ชื่อจาก 1 สำหรับตำแหน่ง ( ' ' ในชื่อ) – 1) AS client_fname จากลูกค้า;

เราเลือก “order_id” และสตริงย่อย และผลลัพธ์ของเราจะปรากฏดังนี้:

นั่นคือวิธีที่คุณสามารถสร้างสตริงย่อยจากสตริงในตาราง PostgreSQL

บทสรุป

PostgreSQL นำเสนอฟังก์ชันสตริงย่อยที่ช่วยให้ผู้ใช้สร้างสตริงย่อยโดยใช้เกณฑ์ที่แตกต่างกัน คุณสามารถระบุความยาวของสตริงย่อยหรือตำแหน่งเริ่มต้นและสิ้นสุดได้ ทั้งนี้ขึ้นอยู่กับเป้าหมายของคุณ ตัวอย่างที่กล่าวถึงในโพสต์นี้จะช่วยให้คุณคุ้นเคยกับการสร้างสตริงย่อยใน PostgreSQL ฝึกฝนต่อไปเพื่อเข้าใจแนวคิด