SQL语句遇到知识点大结

一、SQL中常遇到的一些问题

(1)、时间问题,orcle与Mysql对取当前时间的方式不用。

(2)、与MYsql有许多函数是不同的,但还是大体上一样的。

(3)、常遇到的错误大部分都可以从网上查找出解决办法,如 Every derived table must have its own alias:别名错误(别名尽量不要省),如Maximum call stack size exceeded:超出最大调用堆栈大小,问题是变量的值过长,这种情况下是取到的值问题。需要注意的是,网上的办法不一定都可以自己的解决,有的问题给出的提示相同,但错的不同。

(4)、常用到的知识点

1.orcle中语句进行查询时,子查询出来的字段命名为A,但进行字段统计相加时,直接+A错误,提示没有该字段,只能进行+子查询。

2.orcle进行完排序后使用rownum取前5条数据:SELECT A FROM (select A from  表1 where 1=1 order by A )  WHERE rownum<=5 。  rownum是把SQL出来的结果进行编号,始终从1开始,常见的用途就是用来分页。类似于MYSQL和SQL SERVER的top。

orcle进行排序后取中间5-10条数据:SELECT A FROM (select A from  表1 where 1=1 order by A )  WHERE rownum<=10 and rownum>=5。

3.分组后编号rownum是不能实现的,需要使用row_num() over(partition by 分组字段 order by 排序字段)方法。如求表1中A字段进行分组并按A字段排序,并取前5条数据, select A* from ( select * , row_num() over(partition by A order by A desc) rn from test  )  A where rn <=5

4.MYsql取前几条数据做个对比:方法有limit 使用取值。 select * from 表2 where 1=1 limit 5

排序完之后取5到10条数据    select * from 表2 where 1=1  limit 5,10

5.trunc函数的使用、TRUNC(for date)函数为指定元素而截去的日期值,TRUNC(for number)也可以截取数字。

round(number[,decimals]),是截取数字的函数,例如round(12.312,2) 截取小数点后两位,结果为12.31,需要注意round函数和 trunc函数不同,对截取的数字要四舍五入。

concat函数使用,连接字符串X和Y 。

 replace(X,old,new)函数,在X中查找old,并替换成new 。

substr(X,start[,length]),字符串截取0到5位,substr(X,0,5)。

minus函数,是对查询结果集的减法。A minus B就意味着将结果集A去除结果集B中所包含的所有记录后的结果,即在A中存在,而在B中不存在的记录。

intersect函数,正好跟minus 相反,求两个函数的交集。当然minus 也可以求两个函数的交集但还是比直接使用这个函数麻烦一些的。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值