ตัวอย่างเกี่ยวกับวิธีการสร้างสตริงย่อยของสตริงใน 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 ฝึกฝนต่อไปเพื่อเข้าใจแนวคิด