【问题标题】:IF ELSE CONDITION IN SQL WHERE CLAUSESQL WHERE 子句中的 IF ELSE 条件
【发布时间】:2013-08-09 17:28:29
【问题描述】:

我的查询是

DECLARE @AutoApprove BIT    
    SET @AutoApprove = (
            SELECT AutoApprove
            FROM dbo.CommentBox_Setting
            WHERE UserModuleID = @myModuleID
                AND PortalID = @portalID
                AND CultureCode = @cultureCode
            )

由此我将得到 1 或 0(真或假)我还有

   SELECT * FROM ComentBox_Comment
                WHERE UpperModuleID = @UpperModuleID
                    AND ModuleID = @myModuleID
                    AND portalID = @portalID
                    AND cultureCode = @cultureCode
                    AND //Here i need to check condition 

(IF(@AutoApprove=0){ THEN isapprove=1}else {do not check})

注意这里isapprove是表filedName

我知道,我可以通过长查询来做到这一点,我需要简短而简单的方法。 帮帮我。

【问题讨论】:

    标签: sql sql-server-2008 select conditional where-clause


    【解决方案1】:

    试试类似的东西

    AND CASE WHEN @AutoApprove=0 THEN isapprove ELSE 1 END = 1
    

    如果@AutoApprove = 0,这将检查isapprove = 1,否则检查1=1(ignore)

    CASE (Transact-SQL)

    【讨论】:

    • 为什么最后使用'= 1'?我的意思是为什么我们需要那部分!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多