1
使用情況我有以下SQL:SQL服務器:在插入
;WITH DatesCTE AS
(
SELECT CAST('2016-01-01' AS DATE) AS [workingDays]
UNION ALL
SELECT DATEADD(DAY, 1, workingdays)
FROM DatesCTE
WHERE DATEADD(DAY, 1, workingdays) < '2017-01-01'
)
insert into dbo.tWorkingDays
(date,
CASE ((DATEPART(dw, workingDays) + @@DATEFIRST) % 7) NOT IN (0, 1) when TRUE THEN 1,
ELSE 0
END
)
SELECT *
FROM DatesCTE
WHERE ((DATEPART(dw, workingDays) + @@DATEFIRST) % 7) NOT IN (0, 1)
OPTION (MAXRECURSION 366)
和下表:
CREATE TABLE [dbo].[tWorkingDays]
(
[date] [date] NOT NULL,
[is_business_day][bit] NOT NULL DEFAULT 1,
CONSTRAINT [PK_tWorkingDays]
PRIMARY KEY CLUSTERED ([date] ASC)
) ON [PRIMARY]
當我嘗試執行請求我看到以下內容:
Msg 156,Level 15,State 1,Line 14
關鍵字'CASE'附近的語法不正確。
我做錯了什麼?
'情況下,當((DATEPART(DW,workingDays)+ @@ DATEFIRST)%7)NOT IN(0,1)THEN 1 ELSE 0 END'它應該是沒關係。 – Kason
@遲些不應該,逗號不應該在那裏 – Yossi