易截截图软件、单文件、免安装、纯绿色、仅160KB

用SQL Server 2005 CTE简化查询

SQL Server 2005引进了一个很有价值的新的Transact-SQL语言组件:一个通用表表达式(Common Table Expression,CTE),它是派生表和视图的一个便捷的替代。通过使用CTE,我们可以创建一个命名结果集来在SELECT、INSERT、UPDATE和DELETE语句中引用,而无须保存结果集结构的任何元数据。在本文中,我将阐述如何在SQL Server 2005中创建CTE——包括如何使用CTE来创建一个递归查询——并举几个例子来说明它们是如何使用的。注意,本文中所有例子都使用SQL Server 2005的AdventureWorks示例数据库。
在SQL Server 2005中创建一个基本CTE
我们可以在SELECT、INSERT、UPDATE或DELETE语句之前添加一个WITH子句来构成一个CTE。下面的语法显示了WITH子句的基本构造和CTE定义:
[WITH <CTE_definition> [,...n]]
<SELECT, INSERT, UPDATE, or DELETE statement that
calls the CTEs>
<CTE_definition>::=
CTE_name [(column_name [,...n ])] 
AS
(
CTE_query

如上面语句所示,你可以在可选的WITH子句中定义多个CTE。CTE定义包含CTE名称、CTE字段名称、AS关键字和括号中的CTE查询。注意,CTE字段名称的数目必须与CTE查询返回的字段数目相匹配。另外,如果CTE查询提供所有字段名称,那么字段名称是可选的。
现在我们已经对SQL Server的CTE语法有了基本的了解,下面让我们来看一个CTE定义的例子,以便更好地理解这个语法。下面的例子定义了一个命名为ProductSold 的CTE,接着在SELECT语句中引用了CTE:
WITH ProductSold (ProductID, TotalSold)
AS 
(
SELECT ProductID, SUM(OrderQty) 
from Sales.SalesOrderDetail
GROUP BY ProductID

SELECT p.ProductID, p.Name, p.ProductNumber, 
ps.TotalSold
from Production.Product AS p
INNER JOIN ProductSold AS ps 
ON p.ProductID = ps.ProductID
这里可以看到,WITH子句在引用CTE的SELECT语句之前。WITH子句的第一行包含了CTE的名称(ProductSold)以及在CTE 的两个字段名称(ProductID 和TotalSold)。接着是AS关键字,紧接着是括号中的CTE查询。这样,CTE查询返回了每个产品的销售总数。


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

SQL学习笔记

 2009-11-18 12:51:46
 限定处理记录的单位,rowcount=100表式每次处理100条数据。实际处理的记录数由rowcount和where子句决定。如果符合where的记录数大于rowcount,则有rowcount决定,如果小于rowcount,则由where决定。
create table tb(id int identity(1,1),num int)
insert into tb
values(1)
while @@ ......

C# 执行SQL事务实例代码

 [C#]
public void RunSqlTransaction(string myConnString)
{
    SqlConnection myConnection = new SqlConnection(myConnString);
    myConnection.Open();
    SqlCommand myCommand = myConnection.CreateCommand();
    SqlTransaction m ......

MySQL对标准SQL的扩展

MySQL服务器包含一些其他SQL DBMS中不具备的扩展。注意,如果使用了它们,将无法把代码移植到其他SQL服务器。在某些情况下,你可以编写包含MySQL扩展的代码,但仍保持其可移植性,方法是用“/*... */”注释掉这些扩展。MySQL服务器能够解析并执行注释中的代码,就像对待其他MySQL语句一样,但其他SQL服务器将忽略 ......

几条有用的Sql语句

1. Sql  延时候执行
a. 三十秒后执行 WAITFOR DELAY  后面的语句
WAITFOR DELAY '00:00:30'
b. 10:00分开始执行后面的代码
WAITFOR TIME '10:00';
 
2.  收缩数据库,使其空余空间为0%
DBCC SHRINKDATABASE (DataBaseName,0)
3.  取得数据库文件所在的盘符
declare @dirverNam ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号