sql >> Databasteknik >  >> RDS >> Sqlserver

Behöver hjälp med dynamiska frågor med IN-klausul

Om ditt verdornamn är

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

Du kan använda dynamisk SQL

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

eller så kan du få din delade funktion att returnera en tabell

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

Den andra är mycket att föredra på grund av dess skydd mot attacker av SQL-injektionstyp



  1. Fem coola saker jag lärde mig på PostgreSQL Conference Europe 2018

  2. Kan ett dödläge uppstå med samma åtkomstmetod?

  3. Felsökning av MySQL-utlösare

  4. MySQL-fråga tar över 6 sekunder