мне нужно написать MS SQL запрос для предварительного поиска, который основан на различных фильтрах , как название, описание, категория, автор, язык & ДатыMS SQL запрос для предварительного поиска
мне нужна этот запрос как хранимые но я не уверен, как я могу построить запрос, если CatID = 0, WriterID = 0 и т. д. Я могу построить этот запрос легко в C# (ASP.Net) с помощью IF Statement
& пройти весь запрос, но я не уверен, как построить его как 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) –
Проверьте это: http: // stackoverflow. com/questions/263801/sql-server-dynamic-queries –
Невозможно подчеркнуть важность чтения статьи, связанной с @MikaelEriksson –