sql >> Database teknologi >  >> RDS >> Sqlserver

Brug for hjælp til dynamisk forespørgsel med IN-klausul

Hvis dit verdornavn er

 declare @in varchar(100)
 select @in = 'HP,LENOVO'

Du kan bruge dynamisk SQL

 declare @sql nvarchar(1000)
 select @sql = 'select * from yourtable where yourfield in ('[email protected] +')'
 exec sp_executesql @sql

eller du kan få din splitfunktion til at returnere en tabel

 select * 
 from yourtable
     inner join dbo.f_Split(@in) f 
     on yourtable.yourfield =f.entry

Den anden er meget at foretrække på grund af dens beskyttelse mod angreb af SQL-injektionstypen



  1. Sådan løses ORA-29913 med eksterne tabeller

  2. Hvordan genererer jeg et tilfældigt tal for hver række i en T-SQL-selektion?

  3. Mysql_install_db kan ikke finde filen

  4. Ikke i stand til at vælge MySQL fra Vælg datakilde i Visual Studio 2013