sql >> Database >  >> RDS >> Sqlserver

Voer een wiskundige uitdrukking uit en stel de waarde in op variabele in SQL

Gebruik een geparametriseerde query met sp_executesql procedure:

DECLARE @val1 VARCHAR(20)= '500';
DECLARE @val2 VARCHAR(20)= '300';
DECLARE @Oper VARCHAR(20)= '>';

DECLARE @query NVARCHAR(MAX);

DECLARE @Flag INT= 0;

SET @query = 'if ' + @val1 + @Oper + @val2 + ' set @Flag=1';

DECLARE @ParamDefs NVARCHAR(MAX) = N'@Flag int output'

EXEC sp_executesql @query, @ParamDefs, @Flag OUTPUT

PRINT @Flag;

Ook enkele fouten gecorrigeerd:

  1. declare @val1 varchar=100; Standaardgrootte is 1 en @val1 wordt geïnitialiseerd met * niet 100 . Zie Waarom casten/converteren van int een sterretje voor details.
  2. Je hoeft niet te casten naar int binnen dynamische zoekopdracht.


  1. Dump een mysql-database naar een back-up met leesbare tekst (CSV) vanaf de opdrachtregel

  2. Codeigniter 2 $this->db->join gebruikt met $this->db->update

  3. RODBC odbcDriverConnect() Verbindingsfout

  4. Bewaar tijdsinterval in PostgreSQL van Rails