estas usando sql server?? si sabias que en sql server no se puede hacer un query dinamico como lo estas haciendo? tendrias que hacer algo como esto:
Código SQL:
Ver originalDECLARE @query VARCHAR(MAX)
SET @query='select * from tabla'
IF @valor=1 THEN
SET @query=@query + ' where valor=20'
ELSE
SET @query=@query + ' where valor=50'
EXEC sp_executesql @query