`
Supanccy2013
  • 浏览: 223789 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle10g 系统自带函数-subStr,sys_connect_by_path

阅读更多
1,subStr
   subSrt是截取字符串函数,下面是详细的例子
   select subStr('hello world',1,4)from dual;  --截取hell world,从第一个字符起,截取
4个字符。
  select subStr('hello world',0,4)from dual;  --截取hell world,从第一个字符起,截取4个 字符。(注意0和1都表示从第一个字符开始,包括第一个字符)
  select subStr('hello world',-3,3)from dual; --截取hell world,从右端第三个字符起,截取3个字符。


2,sys_connect_by_path函数
   语法:
   Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行。其语法一般为:
       select ... sys_connect_by_path(column_name,'connect_symbol')  from table
       start with ... connect by ... prior
实例
--创建测试表
create table emp(
  empno varchar2(25),   --员工id
  ename varchar2(25),   --员工名字
  mgr   varchar2(25)     --员工的上级id
);
insert into emp values ('1', 'jim', '7');
insert into emp values ('2', 'tom', '7');
insert into emp values ('3', 'tim', '7');
insert into emp values ('4', 'lily', '7');
insert into emp values ('5', 'mary', '7');
insert into emp values ('6', 'tid', '7');
insert into emp values ('7', 'King', '10');
insert into emp values ('8', 'kenvin', '10');
insert into emp values ('9', 'shema', '8');
insert into emp values ('10', 'john', '0');
insert into emp values ('0', 'root', '');:

测试:
select sys_connect_by_path(ename,'-') tree 
from emp 
start with ename='root' 
connect by  prior empno=  mgr;  


3,右边填充,左边填充函数rpad,lpad
  rpad:
   rpad函数从右边对字符串使用指定的字符进行填充
   rpad(string,padded_length,[pad_string])
   string 表示:被填充的字符串   
   padded_length 表示:字节的长度,是返回的字节长度的字符串,如果这个数量比原字符串的字节长度要短,rpad函数将会把字符串截取成从左到右的n个字符;如果正好是中文要被截断,那么这个中文返回的是空格。如:rpad('函数',3) ----返回的是'函 '。
pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,rpad函数将会在string的右边粘贴空格。

   select rpad('supan',33,'0'),length(rpad('supan',33,'0')) from dual;
   lpad函数与rpad函数大致差不多。
分享到:
评论

相关推荐

    oracle10g,9i多行合并一行函数

    这里介绍一种使用`sys_connect_by_path()`函数结合`connect by`语法的方法。 **示例代码:** ```sql SELECT name, MAX(REPLACE(SUBSTR(sys_connect_by_path(course, '*'), 2), '*', ';')) AS courses FROM ( ...

    取得oracle中某表的所有字段名

    `SYS_CONNECT_BY_PATH`函数将每个字段名连接起来,最后使用`MAX`和`substr`函数去除第一个字符(因为路径开始时有一个额外的逗号)。 注意,在上述查询中,`&表名`是一个绑定变量,意味着你需要在实际运行查询时...

    如何取得一个表的所有字段名用逗号分割

    SYS_CONNECT_BY_PATH 函数是 Oracle 9i 及其后续版本中提供的一个系统函数,它可以将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来。这个函数的基本语法是: ```sql SYS_CONNECT_BY_PATH( string, ...

    oracle函数介绍(8) 综述.doc

     单值函数多数处理单个或多个值但只返回单个值(SYS_CONNECT_BY_PATH除外)。  聚合函数多数处理多行并且各分组序列分别返回成一行。  分析函数多数处理多行并且每条记录均会有返回。  需要注意不同类型函数可...

    Oracle常用操作(项目中积累的经验)

    这些关键词用于构建树状结构,其中`LEVEL`表示层次,`CONNECT_BY_ISLEAF`标识叶子节点,`SYS_CONNECT_BY_PATH`生成路径,`START WITH`指定起始节点,`CONNECT BY PRIOR`定义层级关系,`CONNECT_BY_ROOT`查找根节点,...

    SQL最佳实践

    - **SYS_CONNECT_BY_PATH()**:用于构建层次路径。 - **ORDER SIBLINGS BY**:按照指定顺序排列同级节点。 - **The NOCYCLE**:防止查询进入无限循环。 通过遵循以上SQL最佳实践,可以显著提高数据库应用的性能和可...

    淘宝网开发人员数据库知识手册.docx

    - **SYS_CONNECT_BY_PATH**:用于层次查询。 - **SYS_CONTEXT**:访问上下文信息。 **第二节 聚集函数** 聚集函数用于汇总一组值。 - **AVG**:计算平均值。 - **COUNT**:统计非NULL值的数量。 - **DENSE_RANK...

    Oracle实现行列转换的方法分析

    SUBSTR (MAX (SYS_CONNECT_BY_PATH (c2, ';')), 2) NAME FROM ( SELECT c1, c2, rn, LEAD (rn) OVER (PARTITION BY c1 ORDER BY rn) rn1 FROM ( SELECT c1, c2, ROW_NUMBER () OVER (ORDER BY c2) rn FROM t...

Global site tag (gtag.js) - Google Analytics