caseステートメントでレコードがフィルタリングされないことが検出されました。デベロッパーはそれがそうであることを記録していました....SQL Server Caseステートメントでレコードがフィルタリングされていません
日付範囲のレコード数を制限したいのですが、このコードはそうしません。コードは日付にフィルタリングしないことを
declare @ClientId [int],
@EventStartDate DateTime,
@EventEndDate DateTime
set @ClientId = 1
set @EventStartDate = '2016-05-23'
set @EventEndDate = '2016-09-08'
SELECT
[CalendarEventId], [ClientId],
[EventDate],
[Title],
[EventText],
[CreatedBy], [CreatedDate],
[ModifiedBy], [ModifiedDate],
CASE
WHEN [EventDate] >= @EventStartDate
AND EventDate <= @EventEndDate
THEN 'ACTIVE'
ELSE 'NOT ACTIVE'
END AS [STATUS]
FROM
[dbo].[CalendarEvent]
WHERE
ClientId = @ClientId
ORDER BY
EventDate
は 'WHERE'句で条件を含めます。 –
T-SQLの 'CASE'は**式**です(「文」ではありません)。これは単一のアトミックな値に評価されます。したがって、どのような種類のデータフィルタリングも行いません** ... –