我正在嘗試撰寫一個查詢,但WHERE如果搜索資料存在,則需要動態應用該子句,否則在單個查詢中跳過該部分。
Declare @search_text varchar(50)='', @start_date datetime, @end_date datetime;
If(@search_text = '')
begin
select * from Table1 where
CONVERT(VARCHAR(12), Mydate, 101) BETWEEN CONVERT(Date, @start_date) AND
CONVERT(Date,@end_date)
end
else
begin
select * from Table1 where column1 like '%' @search_text '%'
end
我正在嘗試這個,但它不起作用:
select * from Table1 where ( Case when ISNULL(@search_text,'') = '' Then CONVERT(VARCHAR(12), MyDate, 101) END
BETWEEN CONVERT(Date, @start_date) AND CONVERT(Date,@end_date) )
uj5u.com熱心網友回復:
您可以將單個查詢中的邏輯與單個WHERE子句組合在一起:
SELECT *
FROM Table1
WHERE
@search_text = '' AND CONVERT(VARCHAR(12), Mydate, 101)
BETWEEN CONVERT(Date, @start_date) AND CONVERT(Date, @end_date) OR
@search_text <> '' AND column1 LIKE '%' @search_text '%';
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377491.html
標籤:sql sql-server 查询语句 案件
上一篇:如何跳過在SQL中被選中的行
