一、rownum
oracle中没有top函数,只有rownum函数,且此函数后面不能用 ">",只能用"<" 。
[以下原理为转帖]
1 Oracle executes your query.
2 Oracle fetches the first row and calls it row number 1.
3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row.
4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).
5 Go to step 3.
了解了原理,就知道rownum>不会成功,因为在第三步的时候查询出的行已经被丢弃,第四步查出来的rownum仍然是1,这样永远也不会成功。
同样道理,rownum如果单独用=,也只有在rownum=1时才有用。
二、
[以下是转帖,关于oracle函数]
1.INITCAP
返回字符串并将字符串的第一个字母变为大写;
SQL> select initcap('smith') upp from dual;
-----
Smith
2.CONCAT
连接两个字符串;
SQL> select concat('010-','88888888')||'转23' 高乾竞电话 from dual;
----------------
010-88888888转23
3.INSTR(C1,C2,I,J)(MS SQL SERVER CHARINDEX)
在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
SQL> select instr('oracle traning','ra',1,2) instring from dual;
---------
9
4.RPAD和LPAD(粘贴字符)
RPAD 在列的右边粘贴字符
LPAD 在列的左边粘贴字符
SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual;
-----------------
*******gao*******
不够字符则用*来填满
5.LTRIM和RTRIM
LTRIM 删除左边出现的字符串
RTRIM 删除右边出现的字符串
SQL> select ltrim(rtrim(' gao qian jing ',' '),' ') from dual;
-------------
gao qian jing
6.SUBSTR(string,start,count)
取子字符串,从start开始,取count个
SQL> select substr('13088888888',3,8) from dual;
--------
08888888
7.REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
SQL> select replace('he love you','he','i') from dual;
----------
i love you
8.SOUNDEX
返回一个与给定的字符串读音相同的字符串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values('weather');
SQL> insert into table1 values('wether');
SQL> insert into table1 values('gao');
SQL> select xm from table1 where soundex(xm)=soundex('weather');
--------
weather
wether
9.TRIM('s' from 'string')
LEADING 剪掉前面的字符
TRAILING 剪掉后面的字符
如果不指定,默认为空格符
10.FLOOR
对给定的数字取整数
SQL> select floor(2345.67) from dual;
--------------
2345
11.ROUND和TRUNC
按照指定的精度进行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;
----------- ------------ ----------- ------------
56 -55 55 -55
12.SIGN
取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
SQL> select sign(123),sign(-100),sign(0) from dual;
--------- ---------- ---------
1 -1 0
13.TRUNC
按照指定的精度截取一个数
SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;
--------- ------------------
100 124.16
14.ADD_MONTHS
增加或减去月份
SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;
------
200002
SQL> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;
------
199910
15.LAST_DAY
返回日期的最后一天
SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;
---------- ----------
2004.05.09 2004.05.10
SQL> select last_day(sysdate) from dual;
----------
31-5月 -04
16.MONTHS_BETWEEN(date2,date1)
给出date2-date1的月份
SQL> select months_between('19-12月-1999','19-3月-1999') mon_between from dual;
-----------
9
SQL>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;
---------
-60
17.NEW_TIME(date,'this','that')
给出在this时区=other时区的日期和时间
SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time
2 (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32
18.NEXT_DAY(date,'day')
给出日期date和星期x之后计算下一个星期的日期
SQL> select next_day('18-5月-2001','星期五') next_day from dual;
----------
25-5月 -01
19.SYSDATE
用来得到系统的当前日期
SQL> select to_char(sysdate,'dd-mm-yyyy day') from dual;
-----------------
09-05-2004 星期日
trunc(date,fmt)按照给出的要求将日期截断,如果fmt='mi'表示保留分,截断秒
SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,
2 to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;
------------------- -------------------
2004.05.09 11:00:00 2004.05.09 11:17:00
20.CHARTOROWID
将字符数据类型转换为ROWID类型
SQL> select rowid,rowidtochar(rowid),ename from scott.emp;
------------------ ------------------ ----------
AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES
21.CONVERT(c,dset,sset)
将源字符串 sset从一个语言字符集转换到另一个目的dset字符集
SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;
------
strutz
22.TO_NUMBER
将给出的字符转换为数字
SQL> select to_number('1999') year from dual;
---------
23.GREATEST
返回一组表达式中的最大值,即比较字符的编码大小.
SQL> select greatest('AA','AB','AC') from dual;
--
AC
SQL> select greatest('啊','安','天') from dual;
--
天
24.LEAST
返回一组表达式中的最小值
SQL> select least('啊','安','天') from dual;
--
啊
25.AVG(DISTINCT|ALL)
all表示对所有的值求平均值,distinct只对不同的值求平均值
SQLWKS> create table table3(xm varchar(8),sal number(7,2));
语句已处理。
SQLWKS> insert into table3 values('gao',1111.11);
SQLWKS> insert into table3 values('gao',1111.11);
SQLWKS> insert into table3 values('zhu',5555.55);
SQLWKS> commit;
SQL> select avg(distinct sal) from gao.table3;
----------------
3333.33
SQL> select avg(all sal) from gao.table3;
-----------
2592.59
26.MAX(DISTINCT|ALL)
求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;
----------------
5000
62.MIN(DISTINCT|ALL)
求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;
-----------
1111.11
27.CHR
给出整数,返回对应的字符;
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
-- -
赵 A
28.NVL (MS SQL SERVERE ISNULL)
nvl(exp1,exp2)如果exp1不为空,返回exp1,否则返回exp2
分享到:
相关推荐
Oracle 11g R2 RAC(Real Application ...综上所述,Oracle 11g R2 RAC的安装是一项复杂而重要的任务,需要全面的规划、精确的执行和持续的维护。通过深入理解这些知识点,可以确保成功部署一个高效、稳定的RAC环境。
用户在尝试重新安装Oracle 8.1.7时遇到了困难:在欢迎界面处程序停滞不前,并且持续读取硬盘。这表明之前的Oracle 8.1.7版本没有被彻底卸载干净,导致了当前的问题。 #### 二、原因分析 此类问题通常由以下几个方面...
### Oracle 12c Windows 安装包下载技巧与注意事项 #### 一、问题背景及解决方案概述 在尝试将Oracle数据库版本从11g升级至12c的过程中,可能会遇到官方下载速度过慢的问题,这使得获取必要的安装包变得异常困难。...
6. **性能优化**:Oracle与EF的结合使用需要注意性能问题。例如,避免使用导航属性进行大量数据查询,考虑使用存储过程或手动编写SQL语句以提升性能。 7. **持续集成与部署**:在项目部署时,确保所有依赖项(如...
当涉及到CI系统与Oracle数据库的交互时,特别是Oracle 10g这样的老版本,可能会遇到一些特定的问题。以下是对配置CI访问Oracle 10g关键性参数的详细说明: 首先,我们需要在CI的配置文件中设置正确的数据库连接参数...
安装Oracle Developer Suite 10g时,需要注意与已存在的Oracle产品的环境变量冲突问题。例如,安装后可能导致新的环境变量被置于旧的Oracle产品之前,这可能会影响其他Oracle产品的正常运行。在这种情况下,需要手动...
### Oracle 锁机制问题详解 #### 一、引言 在多用户数据库环境中,当多个用户尝试同时访问或修改同一份数据时,就需要通过锁机制来确保数据的一致性和完整性。Oracle 数据库提供了多种类型的锁来支持事务隔离级别,...
### Oracle常见问题的解决方法详解 #### 问题1:处理表中的坏块 在Oracle数据库中,如果遇到表中存在坏块的情况,这通常意味着数据的完整性受到威胁。坏块可能由硬件故障、电源问题或软件错误引起。解决这一问题的...
需要注意的是,在实际配置过程中可能会遇到各种问题,比如权限问题、网络连接问题等,这些问题都需要逐一解决。另外,对于不同的 Oracle 版本和环境,具体的配置细节可能会有所不同,因此建议参考官方文档或寻求专业...
### Oracle 临时表用法详解 #### 一、背景与问题描述 在处理数据库操作时,经常遇到因数据量庞大而导致处理效率降低的问题。...同时,需要注意Oracle临时表的一些局限性,以便在实际应用中做出合理的决策。
需要注意的是,直接提供含有破解内容的下载链接可能涉及版权问题和法律风险。建议通过正规渠道获取学习资源,例如访问官方站点或者购买正版书籍、课程等。这样既能保障自身权益不受侵犯,也能促进信息技术行业的健康...
在Oracle 21.3版本中,有以下值得注意的更新和改进: 1. **性能提升**:Oracle持续优化其客户端,21.3版本可能包括更快的数据读取速度、更高效的网络传输和更低的内存占用。 2. **安全性增强**:随着安全性的日益...
7. **测试和兼容性**:作为β测试版,Oracle.ManagedDataAccess.Core.2.12.0-beta2可能包含一些已知问题和未公开的bug,开发者在使用时需要密切关注Oracle的更新和社区反馈,以确保应用的稳定性和数据安全性。...
在安装【永大我W764位Oracle】前,用户需要注意以下几点关键知识点: 1. **系统兼容性**:由于此版本是针对永大Windows 7 64位操作系统的,因此在安装前,请确保你的计算机运行的是64位的Windows 7系统。如果不确定...
不过,我可以根据您提供的标题和描述,以及对Oracle内核技术普遍理解的背景,构造一些关于Oracle数据库内核技术的一般知识点,但请注意这些并非直接来自于给定文件的内容,而是基于我作为一个专业IT行业大师对于...
### 小机上运行Oracle需要注意的进程调度Bug详解 #### 一、问题背景与描述 在小机上运行Oracle数据库时,可能会遇到一种特殊的Bug,表现为应用间歇性局部挂起的问题。根据客户的反馈,这类问题的具体表现是:在...
- **附录B:产品特定的OSSO异常** 列出了一些特定产品集成时可能遇到的SSO问题和解决方案。 - **附录C:已知问题** 记录了当前版本已知的bug和限制,有助于用户规避和解决可能出现的问题。 在执行这些步骤时,遵循...
4. **性能监控**:在生产环境中,需要持续监控应用程序的性能表现,尤其是数据库连接部分。确保所有连接都能得到合理管理,避免资源浪费或性能瓶颈。 通过以上步骤,可以有效地实现在不安装 Oracle 客户端的情况下...
14. **数据库升级和补丁应用**:及时更新到最新版本或应用性能相关的补丁,可以利用Oracle的新特性并解决已知性能问题。 15. **硬件和操作系统优化**:硬件选择、磁盘阵列配置、内存分配以及操作系统的调优对Oracle...
需要注意的是,虽然`processes`与`sessions`参数都与连接数有关,但它们并不完全等价。通常情况下,`sessions`值应小于或等于`processes`值。 - **查看命令**:可以通过以下SQL查询查看当前设置: ```sql SHOW ...