จะใช้อักขระสี่ตัวสุดท้ายจาก varchar ได้อย่างไร


93

ฉันพยายามใช้อักขระสี่ตัวสุดท้ายจากฟิลด์ varchar เท่านั้น แถวทั้งหมดมีความยาวต่างกัน ฉันควรใช้ฟังก์ชันอะไรเพื่อทำสิ่งนี้ให้สำเร็จ

คำตอบ:



20
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHส่งกลับความยาวของสตริงและSUBSTRส่งกลับ 4 อักขระจาก "ความยาวตำแหน่ง - 4"


2
ยินดีต้อนรับสู่ SO และขอขอบคุณสำหรับการโพสต์คำตอบ โปรดพิจารณาเพิ่มบริบทให้กับโค้ดของคุณและจัดรูปแบบโค้ดของคุณด้วย
Richard Erickson

2
มีข้อผิดพลาดแบบ off-by-one ที่นี่ SUBSTR(column, LENGTH(column) - 3, 4)ควรจะเป็น ถ้าความยาวเท่ากับ 4 เราต้องเริ่มที่ตำแหน่ง 1 และใช้ 4 ตัวอักษร
Karl



9

สำหรับ Oracle SQL SUBSTR(column_name, -# of characters requested)จะแยกอักขระสามตัวสุดท้ายสำหรับแบบสอบถามที่กำหนด เช่น

SELECT SUBSTR(description,-3) FROM student.course;

โปรดทราบว่าสิ่งนี้ใช้ไม่ได้กับ ms sql / sql-server ใช่ไหม?
ScottFoster1000

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.