1
我出生在1978年12月22日CTE查詢有2個條件不起作用?
我想要一個查詢(在CTE!),以顯示我所有的生日(日期部分天= 22)
declare @t0 datetime = '1978/12/22';
declare @t1 datetime = getdate();
with CTEE (val,day1)
AS
(
SELECT @t0,DATEPART(day,@t0)
UNION all
SELECT DATEADD(day,1,val) , DATEPART(day,day1) from ctee where(DATEADD(day,1,val) <[email protected]) and DATEPART(day,day1)=22
)
select val,day1 from CTEE OPTION (MAXRECURSION 20000)
如何過這好像又回到了我1排(爲什麼 ???)
If I remove
and DATEPART(day,day1)=22
所以它給了我所有的日子,我活着。
我找到了解決辦法是這樣的:
declare @t0 datetime = '1978/12/22';
declare @t1 datetime = getdate();
with CTEE (val,day1)
AS
(
SELECT @t0,DATEPART(day,@t0)
UNION all
SELECT DATEADD(day,1,val) , DATEPART(day,day1) from ctee where(DATEADD(day,1,val) <[email protected])
)
select val,day1 from CTEE where day1=22 OPTION (MAXRECURSION 20000)
但我的問題是,爲什麼在第一個查詢沒有工作?
多數民衆贊成多說,我想只是誰是誰datepart = 22 –
我粗體了!非常感謝。我不知道。我想只有當他完成了所有的選擇 –
@RoyiNamir - 從BOL [終止檢查是隱含的;當前一次調用沒有行時,遞歸停止。](http://msdn.microsoft.com/en-us/library/ms186243.aspx) –