access数据库与sql数据库语法区别

2 篇文章 0 订阅

1.利用行集函数sum和grop by语句可以实现数据的分类汇总,如统计在一段时间内不同商品的销售量,sql语句如下:

select 商品名, count(*) as 记录数,sum(zongjia) as 总价 from xiaoshou group by 商品名

2.access中的时间模糊查询:

在access中时间的模糊查询不能使用%在它里面用的是*

select name,sum(zongjia) from xiaoshou where time like '2009-6-27*' group by name

3.有时候access数据库中日期的记录是这样的:2009-6-27 23:59:59,但是我们需要查询出某一天的记录,这个时候使用

select name,sum(zongjia) from xiaoshou where time like '2009-6-27*' group by name是没有办法查处的,对于这个问题可以使用between..and..来搞定,语句如下:

select name,sum(zongjia) from xiaoshou where time between #2009-6-27# and #2009-6-27 23:59:59# group by name

4.将access的两个字段合并为一个字段:当两个字段都是数字类型且需要相加的时候可以这样:

SELECT danjia+shuliang as a
FROM xiaoshou             //这时候a=danjia和shuliang之和
当一个字段为数字一个为文本时:

SELECT name&shuliang as a
FROM xiaoshou             //a为name和shuliang的字符串相加

5.去掉access表中的重复行:

有时候需要将表的某个字段设置为主键,但是有重复值,数据量少的时候还可以人工查找,但是当数据比较大的时候再用人工去找,肯能就。。。。。这个时候我们可以通过SQL语句来这样实现,

select distinct * into 表2 from 表1 ;执行后系统会自动生成一个新表,即表2,而这个表2就是我们需要的结果。

6.按月份汇总数据:

利用Month()函数来实现按月份汇总数据
SELECT Month(time) AS 月份, sum(shou_ru) AS 借, sum(zhi_chu) AS 贷
FROM zhuo_pu
WHERE time Between #1/1/2010# And #12/31/2010#
GROUP BY Month(time);

7.access不支持SqlServer的case when,是通过iif函数实现的:

SELECT IIf(channel_type=0,'文章',iif(channel_type=1,'图片','视频')) AS 表达式1
FROM channel;
这里channel_type是一个int类型字段,通过iif函数将0、1、2所代表的作用转换为汉字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值