วิธีที่ชาญฉลาดในการใช้ SQL Concatenation String

วิธีที่ชาญฉลาดในการใช้ SQL Concatenation String

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





มีภาษาถิ่น SQL ที่แตกต่างกันมากมาย สำหรับตัวอย่างทั้งหมดนี้ ฉันกำลังใช้ PostgreSQL ตัวแปร





วิธีเปลี่ยนไอคอนบน windows 10

การต่อกันคืออะไร?

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





การต่อสายเป็นวิธีที่มีประโยชน์มากในการรวมสองสายเข้าเป็นหนึ่งเดียว PHP ใช้จุดเต็มเพื่อรวมสตริงเข้าด้วยกันในขณะที่ JavaScript และ jQuery ใช้เครื่องหมายบวก

การต่อข้อมูลใน SQL ทำงานเหมือนกันทุกประการ คุณใช้ตัวดำเนินการพิเศษเพื่อรวมสองสิ่งเข้าด้วยกัน นี่คือตัวอย่างใน รหัสเทียม :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

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

แม้ว่าตัวแปรใน SQL จะพบได้น้อยกว่า (แต่ยังคงใช้อยู่) การต่อกันก็ยังจำเป็นเพื่อส่งคืนผลลัพธ์ที่รวมกัน หรือเพื่อจัดการข้อมูล





วิธีการต่อเชื่อม

การต่อกันคือ มาก ง่ายใน SQL แม้ว่า SQL จะเป็นภาษาทั่วไป แต่กลไกฐานข้อมูลแต่ละรายการจะใช้คุณลักษณะต่างๆ ในรูปแบบต่างๆ แม้ว่าตัวอย่างทั้งหมดเหล่านี้จะเป็นภาษาถิ่นของ PostgreSQL แต่ก็สามารถแปลเป็นตัวแปรอื่นๆ ได้โดยง่ายเพียงแค่ค้นหา 'Concatenate' ทางเว็บ เอ็นจิ้นที่ต่างกันอาจมีไวยากรณ์ที่แตกต่างกันสำหรับการต่อกัน แต่หลักการยังคงเหมือนเดิม

กลับไปที่ตัวอย่างชื่อของเรา นี่คือพื้นฐาน เลือก แบบสอบถาม:





SELECT first_name, last_name, email FROM users_table

ไม่มีอะไรซับซ้อนในที่นี้ ให้เพิ่มใน concatenate:

SELECT first_name || last_name AS full_name, email FROM users_table

อย่างที่คุณเห็น การเรียงต่อกันนี้ได้ผลดี แต่มีปัญหาเล็กๆ อย่างหนึ่ง ชื่อเต็มที่ได้จะถูกเย็บเข้าด้วยกันเหมือนกับผลิตภัณฑ์ของทั้งสองคอลัมน์ - ควรมีช่องว่างระหว่างชื่อ!

โชคดีที่คุณแก้ไขได้ง่าย เพียงเชื่อมช่องว่างระหว่างสองสิ่งนี้:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

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

ดังที่กล่าวไว้ข้างต้น ตัวอย่างเหล่านี้ใช้ตัวแปร PostgreSQL ของ SQL รุ่นอื่นๆ อาจใช้โอเปอเรเตอร์อื่น หรือแม้แต่ฟังก์ชันพิเศษที่คุณต้องเรียกใช้ ไม่เป็นไรจริงๆ อย่างไร คุณเชื่อมสตริงเข้าด้วยกันโดยให้คุณทำในลักษณะที่เอ็นจินฐานข้อมูลของคุณคาดหวัง

ก้าวให้ลึกขึ้น

เมื่อคุณรู้พื้นฐานแล้ว มาดูตัวอย่างเชิงลึกพร้อมกับข้อผิดพลาดทั่วไป

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

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

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

หากคุณได้คิดอย่างรอบคอบเกี่ยวกับสิ่งที่คุณต้องทำ แต่ยังไม่สามารถทำให้ SQL ทำงานได้ คุณได้พิจารณาใช้ภาษาการเขียนโปรแกรมหรือไม่? ในฐานะนักพัฒนาซอฟต์แวร์ที่ทำงานเกี่ยวกับโค้ดดั้งเดิม ฉันรู้ดีถึงความเจ็บปวดของการพยายามดีบัก SQL ที่มีใครบางคนยัดเยียดตรรกะลงไปมากจนน่าแปลกใจที่มันทำงานได้เลย -- หากคุณกำลังพยายามเขียนตรรกะใน SQL ให้เปลี่ยนไปใช้ ภาษาโปรแกรม (มีภาษาที่เรียนรู้ง่ายมากมาย )

การเรียงต่อกันทำงานได้ดีมากสำหรับ ที่ไหน งบเช่นกัน:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

มีบางสิ่งเกิดขึ้นที่นี่ ในตัวอย่างนี้ วัน , เดือน , และ ปี คือพารามิเตอร์ที่ส่งผ่านจากสคริปต์ บางทีสิ่งเหล่านี้อาจถูกสร้างขึ้นด้วยรหัสหรือป้อนโดยผู้ใช้ สิ่งเหล่านี้ถูกต่อเข้าด้วยกัน แล้วส่งเป็นประเภทวันที่ (โดยใช้ไวยากรณ์ PostgreSQL cast to date ::วันที่ ).

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

หลุมพรางอีกอย่างที่ต้องระวังคือ โมฆะ ค่า (สตริงว่างเป็นสตริงว่างหรือไม่มีอยู่) จากคำถามนี้:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

แบบสอบถามนี้ล้มเหลวโดยไม่โต้ตอบ นี่เป็นเพราะวิธีการต่อรหัสภายในโปรแกรมฐานข้อมูลของคุณ คุณอาจไม่พบปัญหานี้เสมอไป แต่เป็นเรื่องปกติที่เกิดขึ้น

หากคุณคิดว่าข้อมูลที่การสืบค้นของคุณส่งคืนอาจเป็นโมฆะ คุณจะต้องใช้ a รวมตัวกัน . Coalesce สามารถคิดคร่าวๆ ได้ว่า 'ถ้าเป็นโมฆะ ให้แทนที่ด้วยสตริงหรือคอลัมน์อื่นนี้':

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

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

สิ่งที่คุณทำแจ้งให้เราทราบในความคิดเห็นด้านล่าง!

วิธีเลือกตามสีใน photoshop
แบ่งปัน แบ่งปัน ทวีต อีเมล 6 ทางเลือกที่ได้ยิน: แอพหนังสือเสียงฟรีหรือราคาถูกที่ดีที่สุด

หากคุณไม่ต้องการจ่ายค่าหนังสือเสียง นี่คือแอพดีๆ ที่ให้คุณฟังได้ฟรีและถูกกฎหมาย

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • การเขียนโปรแกรม
  • SQL
เกี่ยวกับผู้เขียน โจ โคเบิร์น(ตีพิมพ์บทความ 136 บทความ)

โจสำเร็จการศึกษาด้านวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยลินคอล์น สหราชอาณาจักร เขาเป็นนักพัฒนาซอฟต์แวร์มืออาชีพ และเมื่อเขาไม่ได้ขับโดรนหรือเขียนเพลง เขามักจะถูกมองว่าถ่ายภาพหรือผลิตวิดีโอ

เพิ่มเติมจาก Joe Coburn

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก