你好专家我有一个Sp,它包含很多if / else条件 请帮助我如何在T-SQL中使用Switch Case。 这是我的查询
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
请帮助我,任何指针或建议都非常有用,谢谢
答案 0 :(得分:1)
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
注意:我是在记事本的帮助下写的。没有使用查询分析器来检查任何语法错误。但是,我希望你能得到这个想法(当唯一改变的是dtCode的值时,不要重复SQL语句。)
答案 1 :(得分:1)
对于此特定查询,您可以编写
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