sql >> Database >  >> RDS >> Sqlserver

Hulp nodig bij dynamische zoekopdracht met IN-clausule

Als uw verdor-naam

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

U kunt dynamische SQL gebruiken

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

of je kunt ervoor zorgen dat je split-functie een tabel retourneert

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

De tweede heeft veel de voorkeur vanwege de bescherming tegen aanvallen van het type SQL-injectie



  1. Bereken het verschil tussen min en max voor elke kolom alleen indien hoger dan 0

  2. Oracle SQL converteert de datumnotatie van DD-Mon-YY naar YYYYMM

  3. genereer lege rijen, zelfs als deze leeg zijn tussen 2 datums

  4. Tijdinformatie opslaan:Tijdzone vereist?