zoukankan      html  css  js  c++  java
  • SQL SERVER 使用ESCAPE转义

    使用SQL语句查询是开发中常做的事,在实际的情况中,可能会遇到,查询包含某个关键词的所有行,而这个关键词正好也是SQL SERVER的关键词。

    下面有一张表Member,有如下的数据:

    假如需要查询名字中包含%字符的数据,首先我们会有这样的查询语句:

    SELECT * FROM dbo.Member WHERE Name LIKE '%%%'

    但是由于%在SQL SERSER中是关键字,此时需要转义,没有转义的写法可以如下:

    SELECT * FROM dbo.Member WHERE Name LIKE '%[%]%'

    转义的写法如下,使用ESCAPE指定转义符:

    SELECT * FROM dbo.Member WHERE Name LIKE '%~%%' ESCAPE '~'

    在项目中使用Entity Framework时,比如名称是否包含%,则DBContext.Set<Member>().Where(m => m.Name.Contains("%")),然后使用SQL Profiler可以看出Entity Framework生成的SQL是使用了~作为转义符。开发中如果是我们手写SQL(非ORM自动生成),转义符可以自由指定,例如:

  • 相关阅读:
    生成随机数
    ES集群开启X-pack认证
    部署ceph
    分布式存储ceph理论
    kvm虚拟机迁移
    kvm虚拟机网络管理
    kvm虚拟机存储管理
    机电传动控制个人课程报告
    第11周机电传动控制作业
    补充第九周手工画图
  • 原文地址:https://www.cnblogs.com/godbell/p/7643260.html
Copyright © 2011-2022 走看看