With CTETable as
(
select * from table
)
Select * from CTETable --one time
Select sum(column) from CTETable -- 2nd time
Select count(column) from CTETable -- 3rd time
請幫忙。如何使用CTE表多於一次
With CTETable as
(
select * from table
)
Select * from CTETable --one time
Select sum(column) from CTETable -- 2nd time
Select count(column) from CTETable -- 3rd time
請幫忙。如何使用CTE表多於一次
你不能在一個以上的查詢中使用CTE。但是也可以通過爲現有CTE的Sum或Count目的製作另一個CTE並交叉連接它們來使用它。
查看下面的查詢。
With CTETable as
(
select * from Table
), CTETotal As
(
SELECT COUNT(count) 'count'
from CTETable
)
Select * from CTETable
CROSS JOIN CTETotal
CTE只能用於一個查詢。因此,只需將單個查詢與UNION ALL
結合到一個查詢中即可。您可以使用附加的虛假行來區分不同的結果集。
With CTETable as
(
select * from TestTable
)
Select '*',* from CTETable --one time
UNION ALL
Select 'sum', sum(col) from CTETable -- 2nd time
UNION ALL
Select 'count', count(col) from CTETable -- 3rd time
我想要顯示單獨的表格。 –
@MuhammadADIL那麼不,你不能用CTE來做這件事。 CTE只能用於單個後續查詢。無論如何,這樣做的好處並不是你想象的那樣;它不是#temp表格。當你多次引用CTE時(例如在上面的UNION中),CTE可以被多次評估。 –
謝謝stefan.schwetschke,但它對我來說沒有幫助。請給我另一個建議 –
你不能。您可以(在足夠新的版本中)使用分區函數在整個結果集中包含SUM和COUNT。您將最終得到每行中具有相同總數和計數的單個結果集。如果這是可以接受的,請這麼說(同時,請指明您的SQL Server版本) –
使用VIEW代替CTE – jbaliuka