LIKE 在 SQL 中不起作用

Posted

技术标签:

【中文标题】LIKE 在 SQL 中不起作用【英文标题】:LIKE not working in TSQL 【发布时间】:2013-11-05 01:32:06 【问题描述】:

考虑一下TSQL:

declare @b varchar(100)

set @b = 'BANK-41'

IF @b LIKE 'BANK_%'
BEGIN
    print 'Wrong Matching'
END

为什么 TSQL 会匹配字符串“BANK-”和“BANK_”?

【问题讨论】:

【参考方案1】:

在 TSQL 中,下划线是表示单个字符的通配符。

为了逃避,你需要用方括号括起来,像这样:

'银行[_]%'

查看此页面: http://www.dirigodev.com/blog/web-development-execution/escaping-percent-and-underscore-characters-in-t-sql-like-clause/

【讨论】:

【参考方案2】:

我认为,SQL Server 中的下划线是为通配符保留的。你需要逃避它。我想你可以把它放在括号里:

%[_]%

【讨论】:

感谢您的帮助。这对理解这一点很有帮助。【参考方案3】:

您需要转义“_”。它是 Like 语句的特殊字符。可以用[]括起来。

LIKE (Transact-SQL)

【讨论】:

感谢您的帮助。这对理解这一点很有帮助。

以上是关于LIKE 在 SQL 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用

在 SQL LIKE 子句中使用 SqlParameter 不起作用

为啥这个简单的 SQL 代码在 Azure Databricks 中不起作用?

Sql 完全外连接查询在 SQLAlchemy 中不起作用

OPENJSON 在 SQL Server 中不起作用?

为啥这个 T-SQL 查询在 Synapse 中不起作用?