การแยกตัวเลขแรกออกจากตัวเลขที่เหลือด้วย LEFT, RIGHT, CONCAT
ใช้ฟังก์ชันสตริง LEFT(), RIGHT(), LENGTH() ร่วมกับ CONCAT() เพื่อแยกและจัดรูปแบบตัวเลข เช่น แยกหลักแรกออกมาแสดงแยก
ตัวอย่างสร้างตารางและข้อมูล
CREATE TABLE DemoTable (
StudentId INT
);
INSERT INTO DemoTable VALUES (2222), (5555), (4567), (8905);
ข้อมูลในตาราง
+-----------+ | StudentId | +-----------+ | 2222 | | 5555 | | 4567 | | 8905 | +-----------+
คำสั่งแยกหลักแรกและส่วนที่เหลือ คั่นด้วย /
SELECT CONCAT(
LEFT(StudentId, 1),
'/',
RIGHT(StudentId, LENGTH(StudentId) - 1)
) AS splitNumericalValue
FROM DemoTable;
ผลลัพธ์
+---------------------+ | splitNumericalValue | +---------------------+ | 2/222 | | 5/555 | | 4/567 | | 8/905 | +---------------------+
คำอธิบาย:
LEFT(StudentId, 1)ดึงตัวอักษร 1 ตัวจากซ้าย (หลักแรก)LENGTH(StudentId) - 1คำนวณความยาวส่วนที่เหลือRIGHT(StudentId, ...)ดึงตัวอักษรจากขวาตามความยาวที่คำนวณได้CONCAT(...)รวมสตริงทั้งสามส่วนด้วย '/' คั่น
⚠ ข้อควรระวัง: คอลัมน์ INT จะถูกแปลงเป็นสตริงอัตโนมัติ (Implicit Cast) ตอนใช้ฟังก์ชันสตริง หากเป็นค่าลบ จะมีเครื่องหมาย - รวมอยู่ในความยาวด้วย
ประยุกต์ใช้: แสดงรหัสสินค้า/บัตรประชาชน/เบอร์โทรในรูปแบบที่อ่านง่าย เช่น CONCAT(SUBSTRING(phone,1,3), '-', SUBSTRING(phone,4,3), '-', SUBSTRING(phone,7))