做數據庫程序幾年了,居然今天才發現有這麼好一個語句:with as,實在慚愧。所謂with as你可以把他看做一個語句片段,也可以看做一個臨時表(我是這麼認為的)。我們可以利用with as語句對查詢出的結果進行二次處理,比如匯總、分類、求平均數等,實在是太方便了。
with as語法:with 數據表別名 as (select * from ...)
實際應用實例:
with t as (select * from emp where depno=10)
select * from t where empno=xxx
union all sum(col1) as colsum from t
看到了吧?可以很方便的對這個臨時表t進行過濾、匯總等操作。而且這種方法比其它的sql語句效率要高很多!
需要注意的是,with as(CTE)屬於sql server2005及以上版本才擁有的功能,如果在sql server 2000上執行,會提示錯誤“WITH附近有語法錯誤”。
關鍵詞:語句 CTE with