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

sende en operand som en sql-parameter

Forudsat at alle positive heltal <2 milliarder, undgår denne løsning flere forespørgsler og dynamisk SQL. OPTION (RECOMPILE) hjælper med at forhindre parametersniffing, men dette er muligvis ikke nødvendigt afhængigt af tabellens størrelse, dine parameterindstillinger og din "optimer til ad hoc-arbejdsbelastning"-indstilling.

WHERE [Amount] BETWEEN 
CASE WHEN @operand LIKE '<%' THEN 0
     WHEN @operand = '>' THEN @operant + 1
     ELSE @operant END
AND
CASE WHEN @operand LIKE '>%' THEN 2147483647
     WHEN @operand = '<' THEN @operant - 1
     ELSE @operant END
OPTION (RECOMPILE);


  1. Identificerende vs ikke-identificerende forhold (igen!!!)

  2. Hvordan laver man en Postgresql underforespørgsel i select klausul med join in fra klausul som SQL Server?

  3. Forhindre stammer fra egennavne i PostgreSQL?

  4. SQL Server BCP eksportere beskadiget fil?