如何使这个If语句跳到下面的if语句?然后,我尝试了其他if,但它不起作用。我希望无论是否将输入传递给变量,它都会显示出来。
declare @sql varchar(8000)
declare @sql_where varchar(8000)
declare @ww varchar(10)
declare @plant varchar(10)
declare @plnr_id varchar(10)
set @plant = 'CS58'
set @ww = '201240'
set @plnr_id = 'G37'
set @sql_where = 'where'
set @sql = 'select * from rout_sub_doi '
if len(@plant) > 0
set @sql_where = @sql_where + ' plant = ''' + @plant + ''' '
if len(@ww) > 0
set @sql_where = @sql_where + 'AND sys_intel_ww = ''' + @ww + ''' '
if len(@plnr_id) > 0
set @sql_where = @sql_where + ' AND plnr_id = ''' + @plnr_id + ''' '
print @sql
print @sql_where
exec (@sql + @sql_where )发布于 2012-10-17 16:18:19
处理未知数量的条件的常见方法是,在已知id不可为空的情况下,将第一个条件设为WHERE 1=1或WHERE id IS NOT NULL等良性条件。
declare @sql varchar(8000)
declare @sql_where varchar(8000)
declare @ww varchar(10)
declare @plant varchar(10)
declare @plnr_id varchar(10)
set @plant = 'CS58'
set @ww = '201240'
set @plnr_id = 'G37'
set @sql_where = ''
set @sql = 'select * from rout_sub_doi where 1=1 '
if len(@plant) > 0
set @sql_where = @sql_where + 'AND plant = ''' + @plant + ''' '
if len(@ww) > 0
set @sql_where = @sql_where + 'AND sys_intel_ww = ''' + @ww + ''' '
if len(@plnr_id) > 0
set @sql_where = @sql_where + 'AND plnr_id = ''' + @plnr_id + ''' '
print @sql
print @sql_where
exec (@sql + @sql_where )https://stackoverflow.com/questions/12929577
复制相似问题