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

标签 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%'

如果这背后有逻辑,是否有另一种方法来做第二个查询之类的事情,

我的 porpuse 是将像 '''abc''' 这样的字符串转换为 'abc' 以便使用 like 语句,

最佳答案

您可以连接字符串以形成您的 LIKE字符串。要修剪字符串的前 3 个和后 3 个字符,请使用 SUBSTRINGLEN职能。以下示例假定您的匹配字符串名为 @input并以 3 个引号开始和结束,需要删除这些引号才能找到匹配项:

select name from Items where name like '%' + SUBSTRING(@input, 3, LEN(@input) - 4) + '%'

关于string - 如何在sql的where子句中使用like和substring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588979/

相关文章:

python - 如何在python中用正则表达式替换未包含在标签中的子字符串

java - main 方法中出现 StringIndexOutOfBoundsException 错误

sql - 向查询添加 INNER JOIN 不应增加返回的行数,对吗?

SQL 选择 : how to return count of consecutive values from an ordered data set

java - 删除两个字符之间的子字符串(java)

java - 如何在java中提取特定的字符串??

c - 具有 3 个字符的字符串显示意外的输出,而具有 6 个字符的字符串显示正确的输出

string - 从字符串中读取 Lisp 对象

java - 为什么这个数字显示程序不起作用?

sql-server - SQL Server,T-SQL 是否有更快的方法来对我的问题中的以下字符串进行子字符串化?