บทความนี้จะเรียนรู้และแสดงวิธีการใช้งานฟังก์ชัน CHARINDEX ใน SQL Server เพื่อหาตำแหน่งของสตริงย่อยภายในสตริงหลัก
คำอธิบาย
ฟังก์ชัน CHARINDEX ใน SQL Server ใช้ค้นหาสตริงย่อยภายในสตริงขนาดใหญ่ เริ่มจากตำแหน่งที่ระบุ ฟังก์ชันคืนค่าตำแหน่งที่พบสตริงย่อย หรือคืนค่า 0 หากไม่พบ ตำแหน่งในสตริงเริ่มที่ 1 ไม่ใช่ 0 เหมือนกรณีอื่นๆ
ไวยากรณ์
การใช้งานฟังก์ชัน CHARINDEX ใน SQL Server มีรูปแบบดังนี้:
CHARINDEX(chuoi_con, chuoi_cha, [vi_tri_bat_dau])
พารามิเตอร์:
- chuoi_con: สตริงย่อยที่ต้องการค้นหา ความยาวจำกัด 8000 ตัวอักษร
- chuoi_cha: สตริงที่ต้องการค้นหา สามารถเป็นข้อความ นิพจน์ หรือคอลัมน์
- vi_tri_bat_dau: ไม่จำเป็น ตำแหน่งในสตริงที่จะเริ่มค้นหา ตำแหน่งแรกคือ 1
หมายเหตุ:
- ตำแหน่งแรกในสตริงคือ 1
- หากไม่พบสตริงย่อยในสตริง CHARINDEX จะคืนค่า 0
- ฟังก์ชัน CHARINDEX รองรับใน SQL Server 2005, 2008, 2008 R2, 2012, 2014, 2016, 2017 และเวอร์ชันใหม่กว่า
ตัวอย่างการใช้งาน
ดูตัวอย่างฟังก์ชัน CHARINDEX ใน SQL Server:
SELECT CHARINDEX('q', 'TipsMake.com');
-- ผลลัพธ์: 1 (ค้นหาไม่แยกตัวพิมพ์ใหญ่/เล็ก)
SELECT CHARINDEX('n', 'TipsMake.com', 2);
-- ผลลัพธ์: 4
SELECT CHARINDEX('n', 'TipsMake.com', 6);
-- ผลลัพธ์: 10
SELECT CHARINDEX('AN', 'TipsMake.com');
-- ผลลัพธ์: 3 (ค้นหาไม่แยกตัวพิมพ์ใหญ่/เล็ก)
SELECT CHARINDEX('an', 'TipsMake.com', 7);
-- ผลลัพธ์: 9 (ค้นหาไม่แยกตัวพิมพ์ใหญ่/เล็ก จึงจับคู่กับ 'An')
SELECT CHARINDEX('z', 'TipsMake.com');
-- ผลลัพธ์: 0