我正在构建一个用户界面,用户可以选择输入不同的比较操作,例如>,<,> =,< =。
我需要在查询中反映它,因此我的查询中的WHERE
子句将如下所示:
declare @number int
declare @operand varchar(2) = '>' --can be >, <, >=, <=
.....
WHERE amount` + operand + `@number`
.....
因此,结果将是WHERE amount > @number
答案 0 :(得分:0)
只需使用此
即可declare @number int = 4
declare @operand varchar(2) = '>' --can be >, <, >=, <=
exec('select * from TableName
WHERE amount ' + @operand + ' ' + @number)
答案 1 :(得分:0)
这将为您打开SQL代码注入。另外要连接一个INT,你必须设置为varchar,但它将在实际语句中计算为INT。
declare @number varchar(max) = '1'
declare @operand varchar(2) = '>' --can be >, <, >=, <=
declare @Where varchar(max)
SET @Where = 'WHERE amount ' + @operand + ' ' + @number
SELECT @Where