高级 SQL 1
1 当使用group by时,未在group by 部分用到的表列在s e l e c t部分出现时必须使用分组函数。
select last_name, state_cd, sum(sales) from customer group by last_name;
ERROR at line 1:
ORA-00979: not a GROUP BY expression.
state_cd应该使用分组函数,m a x ( )、m i n ( )、s u m ( )、c o u n t ( )或a v g ( )函数。否则把state_cd放在last_name后面,作为group by的一个条件。
2 having子句允许用户指定对一个记录组的搜索条件。而通常的where查询条件只针对单记录,不针对记录组。
假如只想了解客户超过3 0 0个的州,使用having 子句,
select state_cd, sum(sales) from customer group by state_cd having count(state_cd) > 300;
3
相关文档:
.Pivot的用法体会:
语句范例:
select PN,[2006/5/30] as [20060530],[2006/6/2] as [20060602]
from consumptiondata a
Pivot (sum(a.M_qty) FOR a.M_date in ([2006/5/30],[2006/6/2])) as PVT
order by PN
Table结构 Consumptiondata (PN,M_Date,M_qty)
order by PN可要可不要,并不重 ......
在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点:
1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2. &nbs ......
最近做项目,需要远程访问数据库,自己在查了些资料,总结了一下,希望对大家有帮助:
作者:shinehoo
一、配置SQL Server 2005
1)安装SQL Server 2005开发版;
2)开始->程序->Microsoft SQL Server 2005->SQL
Server 2005外围应用配置器,在打开的界面单击“服务的连接的外围应用配置器”,在打 ......
转自 http://database.ctocio.com.cn/222/9068222.shtml
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采 ......
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXC ......