在动态中省略SQL中的条件

时间:2013-12-17 09:06:55

标签: sql gridview case

enter image description here我正在使用Asp.net开发一个网站。我在以下代码中遇到问题! 我想使用DataSqlSource并将其附加到Gridview。我还有一个下拉列表,用于在该页面中进行分类。我想要的是,按下拉列表对Gridview进行分类。在这种情况下,在一个条件中,必须从查询中省略条件(Step3_AddArticleType.Status = @Status)。例如,当下拉列表值为“全部”时,上述条件不得计数。 任何人都可以帮助我吗?

我不知道使用它的结构。这是我的DataSqlSource中的代码:

SELECT  Step3_AddArticleType.ArticleType, Step3_AddArticleType.JournalName, Step5_AddTitle.FullTitle, Step3_AddArticleType.Status, Step3_AddArticleType.ArticleNum, 
Step5_AddTitle.ArticleID, Step3_AddArticleType.ID, Step3_AddArticleType.Date, CONVERT(VARCHAR(10), Step3_AddArticleType.Date, 103) AS SubmissionDate

FROM Step3_AddArticleType 
INNER JOIN Step5_AddTitle ON Step3_AddArticleType.ArticleID = Step5_AddTitle.ArticleID    
WHERE        (Step3_AddArticleType.CheckFinish = '0') 
AND (Step3_AddArticleType.JournalName = @JournalName) 
CASE 
WHEN @Status<>'All' THEN   
AND (Step3_AddArticleType.Status = @Status)    
END

非常感谢

1 个答案:

答案 0 :(得分:2)

您的WHERE条件应如下所示。检查所有和特定值之间的OR

WHERE (Step3_AddArticleType.CheckFinish = '0') AND (Step3_AddArticleType.JournalName = @JournalName)
AND (@Status = 'All' OR Step3_AddArticleType.Status = @Status)