我已经开始在Oracle中使用SUBSTR和INSTR,但是遇到这个问题时我感到困惑。
SELECT PHONE, SUBSTR(PHONE, 1, INSTR(PHONE, '-') -1) FROM DIRECTORY;
所以我知道SUBSTR切断了值,而INSTR显示了发生的位置,但是我上面举的示例使我感到困惑,因为结果为362。当我的原始值为362-127-4285时。这是如何运作的?
INSTR(PHONE, '-')给出 指数 的-中PHONE柱,你的情况4 ,然后SUBSTR(PHONE, 1, 4 - 1)或者SUBSTR(PHONE, 1, 3) 使 子 的的PHONE从塔的1st具有的长度3字符是362, 如果该值PHONE列362-127-4285。
INSTR(PHONE, '-')
-
PHONE
4
SUBSTR(PHONE, 1, 4 - 1)
SUBSTR(PHONE, 1, 3)
1st
3
362
362-127-4285