[英]How to put max(number) condition into where clause in SQL Server 2008
[英]Multiple condition based on where clause in sql server 2008
我有一个带有这些列的表格Product
ProductName,
Description,
Manufacturer,
Product Code,
Technology,
Address,
Country,
City,
Length
我想使用这些条件搜索所有这些字段
我将传递是否使用AND / OR操作的另一个参数
一次我们可以使用任何搜索条件和AND \\ OR操作搜索6列
where子句中的条件将像这样
WHERE (ProductName = @ProductName) AND (Country Like @Country +%) OR
(ManufacturerLikre(Ends) '%' + @Manufacturer ) AND (Length < (Greater) @Length)
因此,用户可以根据上述条件输入6个条件。
你能帮助获得where子句的逻辑吗
也许最简单的解决方案是使用以下格式在前端代码中动态构建它:
在哪里whereClause1 AND / OR whereClause2 AND / OR whereClause3 ... etc
用相关的sql语法和每个AND / OR替换whereClause1等。 为了处理所有可能的AND / OR组合,您需要提供一种将where子句括在方括号中的方法,否则它会限制组合的可能范围,并且还假定用户理解了AND和OR运算符的优先级。
此外,在根据用户输入构建查询时,您需要意识到可能的SQL注入攻击。
如果我的问题正确,我认为您想合并条件然后使用OR
WHERE ((ProductName = @ProductName) AND (Country Like @Country +%)) OR
^(Extra Brackets to combine)
((ManufacturerLikre(Ends) '%' + @Manufacturer ) AND (Length < (Greater) @Length))
^(Extra Brackets to combine)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.