SQL 注意的问题

1,用distinct来返回不重记录的所有值 (注意distinct关键字会影响后面所有的字段,同时它要方正前面,group by 必须放在having, order by 和 limit之前,不然会报错)

select *, count(distinct name) from table group by name

2,select A min(B),min(C),count(*) from [table] where [条件] group by  A having [条件] order by A desc

显示出来的字段和排序字段都要包括在group by 中,但显示出来的字段包有min,max,count,avg,sum等聚合函数时可以不在group by 中,如上句的min(B),min(C),count(*)
一般条件写在where 后面,有聚合函数的条件写在having 后面,如果在上句中having加 count(*)>2  就可以查出记录A的重复次数大于2的记录

3、临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

 

posted @ 2012-03-10 10:22  kevin655  阅读(135)  评论(0编辑  收藏  举报