Oracle中如何获取LPAD补位后的数字子串?解决ORA-00907报错
Oracle补位后提取前两位的实现方案
当然可以实现,你遇到的ORA-00907报错是因为SQL语法错误——LPAD(S.ID_STUDENT,6,0)后面多写了一个多余的0,导致括号不匹配,语法结构混乱。
修正后的正确SQL语句如下:
SELECT SUBSTR(LPAD(S.ID_STUDENT, 6, '0'), 1, 2) FROM MASTER.T_STDNT S
语句说明:
LPAD(S.ID_STUDENT, 6, '0'):将学生ID补全为6位长度,不足的位置在左侧填充0,比如原ID为12345会转换为012345。SUBSTR(..., 1, 2):从补位后的字符串第1位开始,截取长度为2的子串,最终得到前两位数字(如01)。
另外也可以用TO_CHAR函数配合格式掩码实现补位,效果相同:
SELECT SUBSTR(TO_CHAR(S.ID_STUDENT, 'FM000000'), 1, 2) FROM MASTER.T_STDNT S
内容的提问来源于stack exchange,提问作者Voozy
相关产品推荐
相关产品推荐

