EHPNO EMAME 30B NGR HIREDATE SAL COR DEPTNO 7802g0ec80 6.4当然除了可以使用number类型的字段进行排序外,还可以使用字符串或者时间类型的字段进行排 序 注意:字符串排序:按照字符对应的ASCII码的先后进行排序: 日期排序:按照日期的先后进行排序,时间越往后越大: 例:ep表中员工的信息按照job升序、ename降序进行排列: 生意:结果集中如果job相同的情况下,会按ename进行降序排列 14 rows selected. 例:emp表中员工的信息按照hiredate升序,sal降序进行排列: 注音 :将日期类型的hiredate的显示格式进行设定: 注意:结果集中如果hiredate相同的情况下,会按照sal进行降序排列: QL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. EMPNO ENAME J08 NGR HIREDATE SAL COMM DEPTNO 598 149 81- 3 7881987-85-238060:8 1100
6.4 当然除了可以使用 number 类型的字段进行排序外,还可以使用字符串或者时间类型的字段进行排 序; 注意:字符串排序:按照字符对应的 ASCII 码的先后进行排序; 日期排序:按照日期的先后进行排序,时间越往后越大; 例:emp 表中员工的信息按照 job 升序、ename 降序进行排列; 注意:结果集中如果 job 相同的情况下,会按照 ename 进行降序排列; 例:emp 表中员工的信息按照 hiredate 升序,sal 降序进行排列; 注意:将日期类型的 hiredate 的显示格式进行设定; 注意:结果集中如果 hiredate 相同的情况下,会按照 sal 进行降序排列;
7.使用结果集中列的别名进行排序: 例:按照e即表中员工对应的年薪(s8l12)进行排序: ,sal12 year_sal 3 YEAR_SAL 839 KING 782 LLE 7521Na 14 rows selected. 注意:当然也可以按照字符串、日期对应的别名进行排序 8.如果排序的字段中包含ull值,那结果会怎样? 注意:在字段进行比较大小的时候,ull值比任何值都大: 例:即表中员工的信息按照 m升序进行排列: MGR HIREDATE SAL 76819128: 7654 MARTIN 95 14 roms selected. 注意:结果集会按照com升序排列(有值的进行排列,null放在后面,但是ul1值之间怎么排列暂不 考虑[因为nul1和nu11之间无法比较大小]): 如果,我想把黑色部分和白色部分位置上下条换,该怎么办? nulls first EMPNO ENAME J06 MGR HIREDATE SAL 78 56 7698 BLA 89 768 6666866666866 7654 MARTIN 4rows selected
7. 使用结果集中列的别名进行排序; 例:按照 emp 表中员工对应的年薪(sal*12)进行排序; 注意:当然也可以按照字符串、日期对应的别名进行排序; 8.如果排序的字段中包含 null 值,那结果会怎样? 注意:在字段进行比较大小的时候,null 值比任何值都大; 例:emp 表中员工的信息按照 comm 升序进行排列; 注意:结果集会按照 comm 升序排列(有值的进行排列,null 放在后面,但是 null 值之间怎么排列暂不 考虑[因为 null 和 null 之间无法比较大小]); 如果,我想把黑色部分和白色部分位置上下条换,该怎么办?
例:同上,ep表中员工的信息按服com降序进行排列: EMPNO ENAME J0B MGR HIREDAT COMM ANAL CLE 619 96 769819812 1981 02-2 14 roms selected. 如果,我想把黑色部分和白色部分位置上下条换,该怎么办? HGR HIREDAT IN CLERK 76 14 roms selected, 【第三章单行函数】 1.字符处理函数(住要针对字符申的格式进行设定) 1.1字符串大小写处理函数 注意:1oer(s),将所给的字符串s全部转换成小写: upper(s), 将所给的字符串s全部转换成大写 1 nitcap(s),将所给的字符串s中的每个单词转换成首字母大写 wer('HELLO Roger.WELCOME TO HEBUTI')result from dual: RESUL hello roger,welcomo to hebut! 5QL>select upper('hello Roger,Melcome to HEBUTI)rosult from dual RESULT HELLO ROGER,WELCONE TO HEBUT SQL>select initcap('HELLO Roger,welcone to HeBut!')result from duali RESULT
例:同上,emp 表中员工的信息按照 comm 降序进行排列; 如果,我想把黑色部分和白色部分位置上下条换,该怎么办? 【第三章 单行函数】 1.字符处理函数(主要针对字符串的格式进行设定) 1.1 字符串大小写处理函数 注意:lower(s),将所给的字符串 s 全部转换成小写; upper(s),将所给的字符串 s 全部转换成大写; initcap(s),将所给的字符串 s 中的每个单词转换成首字母大写;
例:如何忽略大小写敏感性 step1:创建一张表t02,字段定义如下: SQL>show user SQL>create table te2(no number(4),info varchar2(10),dt date); Table created. sQL desc t Null?Type DATE step2:插入测试数据,并提交: 注意:测试数据要全面考虑,既有测试正常分支,又有防止异常干扰的: 5QL>insert into t2 values(1,'oracle',sysdate); 1 row created QL>insert into t2 values(2,ORACLE 1 rov created. QL>insert into t values(3,OrAcle',sydate) 1 row created. QL>insert into to values(4,'elcaro',sysdate); 1 row created SOL>coanit: Comit complet S0L>select·from to2; NO INFO 2811-85-19317:2 step3:查询关于oracle的信息(无论输入信息是0RACB,还是oracle,还是0 RaclE,都可以查到所 有关于oracle的信息,但是前提是这个单词oracle没有拼写错误,哈哈!): 60Rect16nt87.1oer'oac1E' 注意:检索的时候只要使用其中任意一个大小写处理函数,就可以把字符串的敏感性忽略掉;但是由此 也会造成其他的影响, 后续课程在探讨: 1.2 concat(sl,s2):将字符串s1和字符串s2拼接起来; 注意:此函数只有2个参数,等同于将s1和s2用川拼接起来: oncat(enpno,ename)result 注意: r0mm←3,表示只取得表中前3条记录即可(但,运算符只能写<或者<某个不小于1的整数) 注意:tomu皿是表中数据的行号,是数据库自动添加的,但是在select*from查询时看不到,需要
例:如何忽略大小写敏感性 step 1:创建一张表 t02,字段定义如下; step 2:插入测试数据,并提交; 注意:测试数据要全面考虑,既有测试正常分支,又有防止异常干扰的; step 3:查询关于 oracle 的信息(无论输入信息是 ORACLE,还是 oracle,还是 ORaclE,都可以查到所 有关于 oracle 的信息,但是前提是这个单词 oracle 没有拼写错误,哈哈!); 注意:检索的时候只要使用其中任意一个大小写处理函数,就可以把字符串的敏感性忽略掉;但是由此 也会造成其他的影响,后续课程在探讨; 1.2 concat(s1,s2):将字符串 s1 和字符串 s2 拼接起来; 注意:此函数只有 2 个参数,等同于将 s1 和 s2 用||拼接起来; 注意:rownum <= 3,表示只取得表中前 3 条记录即可;(但,运算符只能写<=或者<某个不小于 1 的整数) 注意:rownum 是表中数据的行号,是数据库自动添加的,但是在 select * from „查询时看不到,需要
显示的进行指定才可:同样还有roid,也是数据库自动添加的,64进制的数:(此了解即可,一般编程用 rownum时较多,做数据文件维护时两者会结合使用) 例:查询dept表中的所有记录, 以及 rom和rowid的信息 Null?Type NOT NULL NUPER(2 NEW YORK 1.3 substr(s,m,[n]):表示从所给的字符串s中取得指定范围的子串: 注意:m表示从字符串s的第几位开始,正整数表示从左到右数第几位开始,负整数表示从右至左 数第几位开始:但是截取的方向都是向右; n表示截取子串的长度, 如果不写,即从第m位开始向右直到结束 例:字符串HowAreYou' elect substr(ho You',4,3)result from duali RES Are SQL>select substr('HouAreYou',-6,3)result from dual; RES Are SOL>select substr('HouAreYou',4)result fron dual: AreYou sQL>selec substr('HoAreYou',6)result fro dual; RESULT 注意:如果字符串中含有空格,则空格算1个字符(前提是半角空格) 1.41e即gth(s):表示返回所给字符串s的字符数,即长度(如果有半角空格,则算1个字符:当然全角 空格算2个字符宽度) 例:字符串He1l0 Roger1' SQL>select length('Hello Rogerl')result from duel RESULT 12 注意:区别一下varchar2和char类型的字符串 stp1:创建表t03,字段定义如下: le t3(s1 varchar2(20),s2 char(20)) Table created
显示的进行指定才可;同样还有 rowid,也是数据库自动添加的,64 进制的数;(此了解即可,一般编程用 rownum 时较多,做数据文件维护时两者会结合使用) 例:查询 dept 表中的所有记录,以及 rownum 和 rowid 的信息; 1.3 substr(s,m,[n]):表示从所给的字符串 s 中取得指定范围的子串; 注意:m 表示从字符串 s 的第几位开始,正整数表示从左到右数第几位开始,负整数表示从右至左 数第几位开始;但是截取的方向都是向右; n 表示截取子串的长度,如果不写,即从第 m 位开始向右直到结束; 例:字符串‘HowAreYou’ 注意:如果字符串中含有空格,则空格算 1 个字符(前提是半角空格) 1.4 length(s):表示返回所给字符串 s 的字符数,即长度(如果有半角空格,则算 1 个字符;当然全角 空格算 2 个字符宽度) 例:字符串‘Hello Roger!’ 注意:区别一下 varchar2 和 char 类型的字符串 step 1:创建表 t03,字段定义如下;