Переключить регистр в T-SQL в предложении where - PullRequest
1 голос
/ 06 сентября 2010

Привет, эксперты, у меня есть Sp, который содержит много условий if / else Пожалуйста, помогите мне, как использовать Switch Case в T-SQL, где Clause. вот мой запрос

if (@Form ='page.aspx')
begin
select 
    DT.Column,DST.Column1,
    DST.Code  from Table DT
join Table2 DST 
    on DT.ID= DST.ID
where 
    DT.code = 'XX1'
    and DT.CDID = @cdid
end

 if (@Form ='Page2.aspx')
begin
select 
    DT.Column,DST.Column1,
    DST.Code  from Table DT
join Table2 DST 
    on DT.ID= DST.ID
where 
    DT.code = 'XX2'
    and DT.CDID = @cdid
end

Пожалуйста, помогите мне, любой указатель или предложение будет очень полезно, спасибо

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Для этого конкретного запроса вы можете написать

select

        DT.Column,DST.Column1,
        DST.Code  from Table DT

  join Table2 DST 

        on DT.ID= DST.ID
  where 

              DT.code = case @Form when 'page.aspx' then 'XX1' else 'XX2' end
 and DT.CDID = @cdid
1 голос
/ 06 сентября 2010
declare @dtCode varchar(255)
select @dtCode = 
   CASE @Form 
      WHEN 'page.aspx' then 'XX1' 
      WHEN 'page2.aspx' then 'XX2' 
      ELSE 'NoIdea'
   END

select
    DT.Column,DST.Column1,
    DST.Code  from Table DT
join Table2 DST 
    on DT.ID= DST.ID
where 
    DT.code = @dtCode
    and DT.CDID = @cdid

Примечание : я написал это с помощью блокнота и не использовал Query Analyzer для проверки любых синтаксических ошибок.Но, я надеюсь, у вас есть идея (не повторять операторы SQL, когда изменяется только значение dtCode).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...