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函数大致差不多。
分享到:
相关推荐
这里介绍一种使用`sys_connect_by_path()`函数结合`connect by`语法的方法。 **示例代码:** ```sql SELECT name, MAX(REPLACE(SUBSTR(sys_connect_by_path(course, '*'), 2), '*', ';')) AS courses FROM ( ...
`SYS_CONNECT_BY_PATH`函数将每个字段名连接起来,最后使用`MAX`和`substr`函数去除第一个字符(因为路径开始时有一个额外的逗号)。 注意,在上述查询中,`&表名`是一个绑定变量,意味着你需要在实际运行查询时...
SYS_CONNECT_BY_PATH 函数是 Oracle 9i 及其后续版本中提供的一个系统函数,它可以将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来。这个函数的基本语法是: ```sql SYS_CONNECT_BY_PATH( string, ...
单值函数多数处理单个或多个值但只返回单个值(SYS_CONNECT_BY_PATH除外)。 聚合函数多数处理多行并且各分组序列分别返回成一行。 分析函数多数处理多行并且每条记录均会有返回。 需要注意不同类型函数可...
这些关键词用于构建树状结构,其中`LEVEL`表示层次,`CONNECT_BY_ISLEAF`标识叶子节点,`SYS_CONNECT_BY_PATH`生成路径,`START WITH`指定起始节点,`CONNECT BY PRIOR`定义层级关系,`CONNECT_BY_ROOT`查找根节点,...
- **SYS_CONNECT_BY_PATH()**:用于构建层次路径。 - **ORDER SIBLINGS BY**:按照指定顺序排列同级节点。 - **The NOCYCLE**:防止查询进入无限循环。 通过遵循以上SQL最佳实践,可以显著提高数据库应用的性能和可...
- **SYS_CONNECT_BY_PATH**:用于层次查询。 - **SYS_CONTEXT**:访问上下文信息。 **第二节 聚集函数** 聚集函数用于汇总一组值。 - **AVG**:计算平均值。 - **COUNT**:统计非NULL值的数量。 - **DENSE_RANK...
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...