`
haitaoandroid
  • 浏览: 26548 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sql语句点点滴滴

 
阅读更多

sql语句平常写的少,这次公司需要大量的用到,经常遇到些不会的语句,现记录下自己不熟悉的语句,都是很基础的,只是自己不太熟悉,方便自己查阅:

(1):查两个表的结果之和

select sum(a) from
(
select count(*) as a from table1  
union all
select count(*) as a from table2 
)  as a  

在sybase上如果不加as a是不行的,但是在oracle上是不能加as a的,其他的没有测试, union all把兩個表的結果都显示出來

假如语句

select count(*) as a from table1  
union all
select count(*) as a from table2 

得到的结果如下:

10
15

则上面最后的结果就是25

(2):int类型不能like匹配

 select * from student where sno like 2002%  

其中sno是int,這樣是不能用like匹配的

(3):应用场景:假如table1的列a是整数,a可以取值1和2,1代表数学,2代表语文,要求显示a属性,但是a要用‘数学’和‘语文’代表1和2.

select *,(case when a=1 then '数学' when a=2 then ‘语文’ else '...' end)  as a from table1   


(4):sybase和oracle的时间格式的区别

oracle的写法:

select × from table1 where time >to_date('2012-06-06 09:42:13','yyyy-mm-dd hh24:mi:ss')

sybase的写法:

select × from table1 where time >'2012-06-06 09:42:13'

(5): group by

假如有表 table1如下:

course name score
数学 90
语文 80
数学 91
语文 82
要求查询陈的平均成绩,sql语句如下:

select avg(course) from table1 where name='陈'

要求查询各科目的平均成绩,sql语句如下:

select avg(course) from table1 group by course        

(6):改变表结构,还是上面那个表

alter table table1 add  age  int;
这样上面的表就加上了age这个列名。

(7)今天在oracle数据库客户端上用insert插入了几条语句,select可以看得到,但是在我本地的应用上面一直看不到。select语句是一样的,后来查找原因,是我在insert的时候没有执行commit,所以在远处服务器没有我刚才insert的数据,insert的数据只存在我自己的客户端上,我在oracle客户端select的是本地的数据,但是应用查找的是远程服务器的oracle,所以应用的数据显示不出来。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics