[英]How to use CASE statement in SQL WHERE clause
框架:ASP.NET Web表單。
我有兩個文本框,一個用於輸入開始日期時間,另一個用於結束日期時間。 我還有一個下拉列表,允許用戶在“本地時間”和“ UTC”之間進行選擇。
場景是
如果用戶在下拉列表中選擇“本地時間”, @EndDateTime
在[LocalTimeColumn]
@EndDateTime
[LocalTimeColumn]
列中的@StartDateTime
和@EndDateTime
之間檢索結果
如果用戶在下拉列表中選擇“ UTC”, @EndDateTime
在[UTCColumn]
列的@StartDateTime
和@EndDateTime
之間檢索結果
我寫的SQL查詢不起作用:
SELECT *
FROM [vmc]
WHERE
@DropDownList = CASE
WHEN @DropDownList = "Local Time"
THEN ([LocalTimeColumn] BETWEEN @StartDateTime AND @EndDateTime)
ELSE ([UTCColumn] BETWEEN @StartDateTime AND @EndDateTime)
END
CASE
表達式的謂詞(即THEN
和ELSE
的謂詞)必須是標量值,而不是另一個邏輯表達式。 您可以通過輕微的重構使WHERE
子句執行您想要的操作:
SELECT *
FROM [vmc]
WHERE
(@DropDownList = "Local Time" AND
[LocalTimeColumn] BETWEEN @StartDateTime AND @EndDateTime) OR
[UTCColumn] BETWEEN @StartDate AND @EndDate;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.