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