T-SQL:使用参数作为运算符

Arsee

有没有一种方法可以在T-SQL中对算术运算符(<,>,=,> =,<=)进行参数化?

像这样:

DECLARE @Operator 

SET @Operator = '>=' 

SELECT * 
FROM Table 
WHERE Date @Operator '7/1/2017'

另外,我正在测试使用functions添加其他参数EXEC('SELECT SiteLongName, * FROM Reporting.Survey_Details WHERE CallDate ' + @Operator + '''7/1/2017''' + 'and SiteLongName in (select value from dbo.FnSplit(''' + @Site + ''''+'',''+'','')),但这是错误的。

AXMIM

如果使用动态SQL,则可以。

范例:

DECLARE @Operator VARCHAR(2)

SET @Operator = '>='

EXEC('SELECT * FROM TABLE WHERE Date ' + @Operator +  ' ''7/1/2017''')

在示例中可以看到,在动态SQL中处理引号可能很麻烦。尽管在您的示例中这没什么大不了的。

请注意,如果没有适当的注意,动态SQL就会在系统中打开一个漏洞,用户可以在该漏洞中对程序使用SQL Injection攻击。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用扩展运算符作为参数

如何在 T-SQL 中使用带通配符的 IN/NOT IN 运算符?

运算符T&()还是运算符T()?

动态 Where 子句 T-SQL 变量运算符

使用size_t运算符的数组的增量值

运算符T()未在分配中使用

使用magrittr tee%T>%运算符会产生错误

在左侧使用带有 default(T) 的“is”运算符

什么是C ++中的运算符T *(其中T是模板参数)?

将图像哈希中使用的C#BitCount方法转换为涉及逐位运算符的T-SQL

如何在 Doctrine 准备的 SQL 语句中使用 + 或 - 运算符作为参数?

使用算术运算符作为参数的scala函子

使用运算符(或综合函数)作为参数

正确使用波浪号运算符作为输入参数

运算符>未为T定义

运算符T(){}-不起作用

运算符seq <'T>重载

将运算符作为参数变量

在Haskell中将运算符作为参数

使用复制运算符作为赋值运算符

std :: vector <T>的比较运算符找不到T的比较运算符

T-SQL中是否存在三元条件运算符?

T-SQL 正则表达式匹配“一个或多个”运算符

在T-SQL中具有可变数量搜索条件的LIKE运算符

为什么在结构数组中使用点运算符(。)而不是箭头运算符(->)作为函数参数?

C#作为具有泛型但不相关的<T>的Type上的运算符

使用 size_t n 的赋值运算符的 calloc 有什么作用?

在SPIN ltl公式中使用ne(X)t运算符

在存储过程中将运算符作为参数传递,同时防止 SQL 注入风险