我需要寫這是基於不同的過濾器 如標題,描述,分類,作者,語言&日期MS SQL查詢高級搜索
我需要這個查詢作爲存儲高級搜索一個MS SQL查詢過程,但我不知道如何構建查詢如果CatID = 0,WriterID = 0等。我可以建立這樣的查詢易於使用IF Statement
&通整個查詢C#(ASP.Net),但我不知道如何將它打造爲T-SQL或存儲過程
DECLARE @keyword nvarchar(300)
DECLARE @CatID int
DECLARE @WritterID int
DECLARE @IssueID int
DECLARE @sDate date
DECLARE @eDate date
DECLARE @LangID int
SET @keyword = 'xyz';
SET @CatID = 1;
SET @WritterID = 1;
SET @IssueID = 1;
SET @sDate = '1/01/2012';
SET @eDate = '1/01/2013';
SET @LangID = 1
SELECT ArticleID,ArticleTitle,ArticleCategoryID,ArticleAuthorID,IssueID,ArticlePublishDate FROM art_Articles
WHERE ArticleTitle LIKE '%'+ @keyword +'%'
OR ArticleDesc LIKE '%'+ @keyword +'%'
代碼示例在C#
strSql = "SELECT ArticleID, ArticleTitle, ArticleDesc, ArticlePublishDate FROM art_Articles WHERE ";
strSql += "((ArticleVisible = 1 AND ArticleActive =1 AND LanguageID =" + LangID + "))";
if (CatID > 0)
{ strSql += " AND ArticleCategoryID ="+ CatID; }
if (WriterID > 0)
{ strSql += " AND ArticleAuthorID ="+ WriterID; }
我想你可以從閱讀本文獲益:[T-SQL中的動態搜索條件](http://www.sommarskog.se/dyn-search-2008.html) – 2013-03-11 06:27:32
選中此項:http:// stackoverflow。 com/questions/263801/sql-server-dynamic-queries – 2013-03-11 06:33:48
不能強調閱讀由@MikaelEriksson鏈接的文章的重要性 – 2013-03-11 08:41:46