Sql server 如何在SQL server中使用带转义的单引号

Sql server 如何在SQL server中使用带转义的单引号,sql-server,hibernate,sql-server-2008,hql,hibernate-criteria,Sql Server,Hibernate,Sql Server 2008,Hql,Hibernate Criteria,请帮助我理解下面的SQL server查询将做什么 SELECT * from emp e where e.empName like '%'' escape ''%' 我的下一个直接问题-如何在HQL中实现同样的效果,是我可以在HQL中使用escape?此查询返回emp表的所有记录,其中empName字段中包含'escape' “%”符号用于定义模式前后的通配符(缺少字母) 看链接 希望这有帮助 它将返回emp表中的所有内容,其中empName列包含一个包含''escape''的值 selec

请帮助我理解下面的SQL server查询将做什么

SELECT * from emp e where e.empName like '%'' escape ''%'

我的下一个直接问题-如何在
HQL
中实现同样的效果,是我可以在
HQL
中使用escape?

此查询返回
emp
表的所有记录,其中
empName
字段中包含
'escape'

“%”符号用于定义模式前后的通配符(缺少字母)

看链接


希望这有帮助

它将返回
emp
表中的所有内容,其中
empName
列包含一个包含
''escape''
的值

select 1 where 'this string contains '' escape '' in it' like '%'' escape ''%'
这很奇怪,因为搜索参数中有双引号。。。但这是因为字符串中的引号必须用一个引号转义

考虑一下类似的例子

select 1 where 'John Smith' like '%Sm%'
这是在字符串
John Smith
中查找字母
Sm


转义单引号对于
HQL
对于what

是一样的,您认为该查询将做什么?您是否正在尝试这样做<代码>其中的名称类似于“%O”“Brien%”?如果是,为什么需要
ESCAPE
关键字?只需将值中的单引号加倍——或者,如果HQL足够专业,能够支持正确的强类型参数,您甚至不必担心它……我需要将单引号作为值转义,如果它是字符串,则忽略单引号