SQL:如何在查询中连接比较运算符?

时间:2016-06-17 15:39:11

标签: sql-server tsql

我正在构建一个用户界面,用户可以选择输入不同的比较操作,例如>,<,> =,< =。

我需要在查询中反映它,因此我的查询中的WHERE子句将如下所示:

declare @number int
declare @operand varchar(2) = '>' --can be >, <, >=, <=

.....
WHERE amount` + operand + `@number`
.....

因此,结果将是WHERE amount > @number

2 个答案:

答案 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