ฉันพยายามใช้อักขระสี่ตัวสุดท้ายจากฟิลด์ varchar เท่านั้น แถวทั้งหมดมีความยาวต่างกัน ฉันควรใช้ฟังก์ชันอะไรเพื่อทำสิ่งนี้ให้สำเร็จ
ฉันพยายามใช้อักขระสี่ตัวสุดท้ายจากฟิลด์ varchar เท่านั้น แถวทั้งหมดมีความยาวต่างกัน ฉันควรใช้ฟังก์ชันอะไรเพื่อทำสิ่งนี้ให้สำเร็จ
คำตอบ:
สิทธิควรทำ:
select RIGHT('abcdeffff',4)
SUBSTR(column, LENGTH(column) - 3, 4)
LENGTH
ส่งกลับความยาวของสตริงและSUBSTR
ส่งกลับ 4 อักขระจาก "ความยาวตำแหน่ง - 4"
SUBSTR(column, LENGTH(column) - 3, 4)
ควรจะเป็น ถ้าความยาวเท่ากับ 4 เราต้องเริ่มที่ตำแหน่ง 1 และใช้ 4 ตัวอักษร
RIGHT ( character_expression , integer_expression )
SELECT RIGHT(column, 4) FROM ...
ใช้RIGHT()
ฟังก์ชัน: http://msdn.microsoft.com/en-us/library/ms177532(v=sql.105).aspx
SELECT RIGHT( '1234567890', 4 ); -- returns '7890'
สำหรับ Oracle SQL SUBSTR(column_name, -# of characters requested)
จะแยกอักขระสามตัวสุดท้ายสำหรับแบบสอบถามที่กำหนด เช่น
SELECT SUBSTR(description,-3) FROM student.course;
ทดสอบวิธีแก้ปัญหาบนแฮ็กเกอร์แร็ค ....
select distinct(city) from station
where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');