0Pricing
SQL Academy · บทเรียน

การต่อข้อความ: || และ CONCAT

ต่อสตริงด้วยตัวดำเนินการ || และ CONCAT() พร้อมทำความเข้าใจว่าแต่ละวิธีจัดการกับอินพุต NULL อย่างไร

การต่อข้อความ: || และ CONCAT เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

การต่อสตริงมาตรฐาน: ||

ตัวดำเนินการมาตรฐานของ SQL สำหรับการต่อสตริงคือ ||:

SELECT first_name || ' ' || last_name AS full_name FROM users;
SELECT 'Hello, ' || name || '!' FROM users;

|| เมื่อใช้กับ NULL จะได้ NULL

หากตัวถูกดำเนินการใดเป็น NULL นิพจน์ทั้งหมดจะกลายเป็น NULL ต้องระบุการจัดการให้ชัดเจน:

SELECT first_name || ' ' || NULL;     -- NULL

-- Defend with COALESCE:
SELECT first_name || ' ' || COALESCE(last_name, '') FROM users;

CONCAT: ทางเลือกที่ปลอดภัยกับ NULL

CONCAT จะถือว่า NULL เป็นสตริงว่าง:

SELECT CONCAT(first_name, ' ', last_name) FROM users;
SELECT CONCAT(first_name, ' ', NULL);     -- 'first_name ' (no NULL)

CONCAT_WS: พร้อมตัวคั่น

เหมาะสำหรับ "การต่อโดยมีตัวคั่น" และอ่านเข้าใจได้มากที่สุด:

SELECT CONCAT_WS(' ', title, first_name, middle_initial, last_name) AS pretty_name
FROM users;
-- ' ' between non-NULL fields only

การผสมสตริงกับตัวเลข

คุณสามารถแปลงชนิดข้อมูลเองหรืออาศัยการแปลงโดยปริยายได้ (PostgreSQL มีกฎเข้มงวด — การแปลงชนิดข้อมูลอย่างชัดเจนปลอดภัยกว่า):

SELECT 'Order #' || id::TEXT  FROM orders;
SELECT CONCAT('Order #', id) FROM orders;     -- CONCAT auto-casts

การสร้างสตริงสำหรับแสดงผล

ประกอบป้ายกำกับที่อ่านเข้าใจได้:

SELECT id,
       email,
       CONCAT_WS(', ', city, region, country) AS location
FROM users;

การต่อค่ารวมด้วย STRING_AGG

หากต้องการต่อค่าจากหลายแถว ให้ใช้ STRING_AGG (หรือ array_agg):

SELECT user_id,
       STRING_AGG(name, ', ' ORDER BY name) AS tag_names
FROM user_tags
GROUP BY user_id;

FORMAT สำหรับสตริงตามแม่แบบ

format() ของ PostgreSQL ใช้รูปแบบเดียวกับ printf และจัดการ NULL ได้อย่างปลอดภัย:

SELECT format('User %s (id=%s) joined on %s',
              full_name, id, created_at::DATE)
FROM users;

สตริงว่างเทียบกับ NULL

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

INSERT INTO contacts (phone) VALUES (NULLIF(:phone, ''));

ค่าลิเทอรัลสตริงหลายบรรทัด

PostgreSQL รองรับการใช้เครื่องหมายดอลลาร์ครอบค่า เพื่อสร้างสตริงหลายบรรทัดโดยไม่ต้องใช้อักขระหลีก:

SELECT $$Hello,
'World' — with quotes!$$;

SELECT $custom_tag$ ... $custom_tag$;

ประสิทธิภาพการต่อสตริง

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

สรุปทบทวน

ใช้ || สำหรับการต่อแบบมาตรฐาน ใช้ CONCAT/CONCAT_WS เพื่อข้าม NULL ใช้ FORMAT สำหรับแม่แบบ และใช้ STRING_AGG เพื่อต่อค่าจากหลายแถว

ตรวจสอบความเข้าใจ

ถ้า last_name เป็น NULL แล้ว first_name || ' ' || last_name จะส่งคืนค่าใด

คำถามที่พบบ่อย

บทเรียน “การต่อข้อความ: || และ CONCAT” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การต่อข้อความ: || และ CONCAT” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การต่อข้อความ: || และ CONCAT”

ต่อสตริงด้วยตัวดำเนินการ || และ CONCAT() พร้อมทำความเข้าใจว่าแต่ละวิธีจัดการกับอินพุต NULL อย่างไร คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การต่อข้อความ: || และ CONCAT” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม

ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การต่อข้อความ: || และ CONCAT
  2. UPPER, LOWER, SUBSTRING, REPLACE
  3. TRIM, LPAD, RPAD
  4. บทนำการค้นหาข้อความเต็มรูปแบบ (tsvector, to_tsquery)
← กลับไปที่ SQL Academy