Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jalankan ekspresi matematika dan atur nilainya ke variabel dalam SQL

Gunakan kueri berparameter dengan sp_executesql prosedur:

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;

Juga memperbaiki beberapa kesalahan:

  1. declare @val1 varchar=100; Ukuran default adalah 1 dan @val1 diinisialisasi dengan * bukan 100 . Lihat Mengapa cast/convert dari int mengembalikan tanda bintang untuk detailnya.
  2. Anda tidak perlu melakukan transmisi ke int di dalam kueri dinamis.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Setara dengan GROUP_CONCAT()

  2. SQL Server 2012 meminta data Access 2007 menggunakan kesalahan OPENROWSET

  3. Baca char, double, int pattern dari string di sql

  4. Menghubungkan ke SQL Server 2008 jarak jauh dari Windows Azure

  5. Sambungan berhasil dibuat dengan server, tetapi kemudian terjadi kesalahan selama jabat tangan pra-login