Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Benötigen Sie Hilfe bei der dynamischen Abfrage mit der IN-Klausel

Wenn Ihr Verdor-Name

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

Sie können dynamisches SQL

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

oder Sie können Ihre Split-Funktion dazu bringen, eine Tabelle zurückzugeben

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

Die zweite ist aufgrund ihres Schutzes vor SQL-Injection-Angriffen viel vorzuziehen