Oracle的substr()函数

请问 substr() 函数中的起始位从0开始,还是从1开始,为什么我测试的两个都是一样的,我的列名是NCLOB类型的
最新回答
寄烟念七晴

2024-04-27 02:43:08

substr(字段,a,b)
a代表第几个位置
b代表长度
0和1的效果一样
用负数则从右边开始数第几个位置
一枕庭前雪

2024-04-27 00:29:02

select
ename,substr(ename,1,(length(ename)-3))
from
emp;
活给自己看

2024-04-27 03:49:21

  SUBSTR函数
  VFP字符函数的一种。表示的是字符型函数。格式是:SUBSTR(<字符表达式>、<数值表达式1>[,<数值表达式2>]
  函数功能:是从给定的字符表达式或备注字段中返回一个子字符串。
  语法格式一:
  SUBSTR(cExpression,nStartPosition [,nCharactersReturned])
  其中,cExpression指定要从其中返回字符串的字符表达式或备注字段;nStartPosition用于指定返回的字符串在字符表达式或备注字段中的位置,nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符。
  举例
  STORE'abcdefghijklm' To mystring
  ?SUBSTR(mystring ,1,5) 显示 "abcde"
  ?SUBSTR(mystring ,6) 显示 "fghijklm"
  ?SUBSTR(mystring,-2)显示“lm”
  ?SUBSTR(mystrng,-4)显示“jklm”、
‍ 语法格式二‍‍‍:‍‍‍‍

SUBSTR(char A,char B,int C, int D)
  这个函数主要用于字符串的运算,参数A是字符数组或是指向字符串的指针,用于接收字符串,参数B一般也为字符数组或指向字符串的指针,表示要截取字符串的地方,参数C表示从B中截取字符串的起始位置,参数D表示要截取字符串的长度,缺省时返回字符表达式的值结束前B的全部字符。
  上述表达式功能可描述为:从字符串B的第C个字符处开始,截取长度为D的一串字符串,放入字符串数组A中,返回截取的字符串。
  举例: ch X S[]="abcdefgh" 调用substr(X,S,4,2)后,得到的结果是:"ef"