如何在sql的where子句中使用like和substring

时间:2016-11-14 12:38:47

标签: string tsql substring where-clause sql-like

希望有人可以帮助我并为我解释这个问题, 为什么第一个查询返回结果但第二个查询没有:

编辑: 第一个查询:

select name from Items where name like '%abc%'

第二个查询:

 select name from Items where name like substring('''%abc%''',1,10)

为什么第一次返回结果但第二次返回什么时没有返回

substring('''%abc%''',1,10)='%abc%'

如果背后有逻辑,是否有其他方法可以执行第二个查询,

我的目的是改变像#'' abc''''''''''到了#abc'为了使用like语句,

1 个答案:

答案 0 :(得分:1)

您可以连接字符串以形成SUBSTRING字符串。要修剪字符串中的前3个字符和后3个字符,请使用LEN@input函数。以下示例假定您的匹配字符串名为select name from Items where name like '%' + SUBSTRING(@input, 3, LEN(@input) - 4) + '%' ,并以3个引号开头和结尾,需要删除这些引号才能找到匹配项:

String[] names = request.getParameterValues("Name");
StringBuilder name = new StringBuilder("(");
for(int index = 0; index <names.length; index++){
    name.append("'");
    name.append(names[index].replace("\\","").replace("/",""));
    name.append("'");
    name.append(index != names.length -1? "," : ")");
}
String output = name.toString();