How to condition the WHERE with a variable and a temporary table ?, dynamic query [closed]

0

What a good day, I have a question with SQL Server, how can I use a variable to choose if I want to add the not like or if I do not want to add it, I have this code but it does not work, it puts an error in the temporary table:

DECLARE @option CHAR(1)
DECLARE @sql_statement VARCHAR(MAX) = ''
SET @sql_statement = 'SELECT Numero,
                             Revision,
                             Nombre
                      INTO   #REV
                      FROM   dbo.sp_prueba'
IF @option = 'Y'
BEGIN
  SET @sql_statement +=  'WHERE  Revision NOT LIKE ''XL%Dem''
                          AND  Numero > 2'
END
ELSE
 BEGIN
  SET @sql_statement +=  'WHERE  Numero > 2'
 END
EXEC(@sql_statement)
    
asked by chernan5 28.11.2017 в 23:20
source

1 answer

1

Here is the correct dynamic query.

DECLARE @option CHAR(1)=''
DECLARE @sql_statement VARCHAR(MAX) = ''

SET @sql_statement='insert into #TuTablaTempo 
                  SELECT Numero,
                         Revision,
                         Nombre
                         FROM   dbo.sp_prueba'

IF @option='Y' BEGIN
   SET @sql_statement= @sql_statement + ' WHERE  Revision NOT LIKE ''XL%Dem''
                      AND  Numero > 2'
EXEC(@sql_statement)
END
  ELSE BEGIN
    SET @sql_statement= @sql_statement + ' WHERE  Numero > 2'
    EXEC(@sql_statement)
 END
    
answered by 29.11.2017 / 00:22
source