2013-08-08 1 views
0

МОЙ ЗАПРОС ЯВЛЯЕТСЯIF ELSE УСЛОВИЕ В SQL ИНЕКЕ

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})

Примечание здесь одобрено является таблицей filedName

Я знаю, я могу сделать это с длинным запросом, мне нужен короткий и простой способ. Помогите мне.

ответ

2

Try что-то вроде

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

Это будет проверять isapprove = 1 если @AutoApprove = 0 или 1=1(ignore) иначе.

CASE (Transact-SQL)

+2

Почему '= 1' используется в конце? Я имею в виду, зачем нужна эта часть! – jaczjill

 Смежные вопросы

  • Нет связанных вопросов^_^