我正在尝试从文本字符串中提取数字并将其连接到另一个表。这是我到目前为止所拥有的:
SELECT sect.id,
sect.section_number,
sect.expression,
p.abbreviation
FROM sections sect
JOIN period p ON SUBSTR(sect.expression, 1, (INSTR(sect.expression,'(')-1)) = p.period_number
AND p.schoolid = 73253
AND p.year_id = 20
JOIN courses c ON sect.course_number = c.course_number
WHERE sect.schoolid = 73253
AND sect.termid >= 2000
我阅读了一些其他线程并想出了如何去掉数字(它总是出现在左括号之前)。问题在于,这仅占 sect.expression 列中三种类型数据中的两种——
9(A) - check
10(A) - check
但不是
5-6(A)
5-6(A) 将退回 Oracle 01722 无效号码错误。有没有办法我可以修改 substr... 行,以便对于 5-6(A) 数据类型,它会抓取第一个数字(5)并加入其中?
值得一提的是,我只有对该表的读取权限,因此任何依赖于创建某种帮助表/列的解决方案都不起作用。
谢谢!