oracle数据库,查询表中字段的某部分值

1.substr(MateriaID,length(MateriaID)-7,8)

  select substr(MateriaID,length(MateriaID)-7,8) from table where ...

2.函数的解释

//关于substr()第二个参数的起始位置有的说是1,有的说是0.从实践来看是从1开始的。

substr(string string, int a, int b) 

//下面的字符串的开始位置从1开始。
参数1:string 要处理的字符串 
参数2:a 截取字符串的开始位置(起始位置是1) 
参数3:b 截取的字符串的长度(而不是字符串的结束位置) 
例如: 
substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字符 
substr("ABCDEFG", 3,100); //返回:CDEFG,截取从C开始之后所有字符 
substr("ABCDEFG", 1, 3); //返回:ABC,截取从A开始3个字符 
substr("ABCDEFG",1,100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 
substr("ABCDEFG", -3, 3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。 

3.oracle中length()和lengthb()的区别

    length():统计的是字符的长度;lengthb():统计字节的长度.

    举例:length(“大家好”);  //结果为:3

               length("大家好");     //结果为:6

 

你可能感兴趣的:(oracle数据库)