【发布时间】:2016-06-17 15:39:11
【问题描述】:
我正在构建一个用户界面,用户可以在其中选择输入不同的比较操作,例如 >、=、
我需要在我的查询中反映它,所以我的查询中的 WHEREclause 将如下所示:
declare @number int
declare @operand varchar(2) = '>' --can be >, <, >=, <=
.....
WHERE amount` + operand + `@number`
.....
所以,结果片段将是WHERE amount > @number
【问题讨论】:
-
你必须使用动态。并注意 SQL 注入攻击
-
如果您的代码中只有比较运算符注释,建议使用 case 语句...主要是因为 SQL 注入。
-
你也可以看看similar question here
标签: sql-server tsql