程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> Sql Server2005對t-sql的增強之通用表表達式CTE

Sql Server2005對t-sql的增強之通用表表達式CTE

編輯:關於SqlServer

CTE是Common Table Expression的簡寫,翻譯成中文就是通用表表達式,它可以在select,insert或者update中使用。

為了說明問題,我們先隨便建張表,插入幾條數據:

if object_id('t','U') is not null --用object_id函數判斷表是否在數據庫中存在很簡潔

drop table t;
GO
create table t(c1 int,c2 decimal,c3 int);
GO
INSERT INTO t
SELECT c1 = 1,c2 = 5.0,c3=10
UNION
SELECT c1 = 2,c2 = 5.5,c3=10
UNION
SELECT c1 = 3,c2 = 5.0,c3=20
UNION
SELECT c1 = 4,c2 = 5.5,c3=20

--下面我們使用CTE寫一個分頁的sql語句

GO
WITH t_cn AS
(
select c1,c2,c3,rn = ROW_NUMBER() OVER(ORDER BY c1 DESC) FROM t WHERE 0 = 0 --可以在此處添加一些條件
)
SELECT c1,c2,c3 FROM t_cn WHERE rn between 2 and 3
SELECT totalCn = COUNT(*) FROM t WHERE 0 = 0

這就是一個最最簡單的示例了,這樣寫出來的分頁是不是很簡潔?CTE還可以用在insert和update中用法大同小異,就不一一列舉。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved