经常惆怅于Sql中字符变量的转义问题,刚刚看到一篇文章感觉不错,借来分享给大家
SELECT Count(0)和SELECT COUNT(*)和SELECT COUNT(??) 意思一样的。
 
sql单引号问题解决 用转义

提交sql语句时老因为单引号出错
百度了一下用两个单引号替换单引号就行了
 
 
content=content.replace("'","''");
SQL中的转义字符怎么用呢?

我的数据库中存在C_这样开头的表,也有C开头的表,我现在使用like查询出以C_开头的表,则使用LIKE 'C_%'时,下划线被当作一个任意字符的关键字使用,怎么能够查到我要的数

like 'C\_%' escape '\'

\t是四个字符空一次   如果是4的倍数+1时用\t就那样了 写了个方法可以参考使用。在不固定长度的字段使用输出保证能够对齐
public String toString() {       return "学生ID:"+ blankStr(10,stuID) + "姓名:"+ blankStr(18,stuName) +"\t性别:"+gender+"\t年龄:"+age+"\t所在班级:"+classes; }
//按列宽补空格,对齐。避免使用\t对齐造成错位 //参数:列宽度,要格式化的字符串 private String blankStr(int colWidth,String str ) { String blank = ""; int blankLen = colWidth - str.length(); for (int i = 0; i < blankLen; i++) {    str += " "; } return str; }

java转义字符 收藏 \n 回车(\u000a) \t 水平制表符(\u0009) \b 空格(\u0008) \r 换行(\u000d) \f 换页(\u000c) \' 单引号(\u0027) \" 双引号(\u0022) \\ 反斜杠(\u005c) \ddd 三位八进制 \udddd 四位十六进制

上周发现还有其它需要转义的字符,例如

String sName = "Java转义字符(补遗)"; sName = sName.replaceFirst("(补遗)",""); out.println(sName);

如果你以为会输出“Java转义字符”,那你就错了,事实上输出“Java转义字符()”,我也很奇怪,以为是中英文括号的问题,可是并不是,我不确定是否转义问题,解决方法是

sName = sName.replaceFirst("\\(补遗\\)","");

SQL查询中的转义字符

如果想查找“_cs”结尾的的账户 select * from [user] where loginname like '%_cs'是不行的,_ 被认为是任意的字符, 所以需要转义字符,有两种写法: select * from [user] where loginname like '%[_]cs' select * from [user] where loginname like '%/_cs' escape'/'

通配符 含义 % 包含零个或更多字符的任意字符串。 _ 任何单个字符。 [ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。 [^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。
例如:

LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。

LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。

LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。

LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。

LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。

LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。

LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。 使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用: WHERE ColumnA LIKE '%5/%%' ESCAPE '/'符号 含义 LIKE '5[%]' 5% LIKE '5%' 5 后跟 0 个或更多字符的字符串 LIKE '[_]n' _n LIKE '_n' an, in, on (and so on) LIKE '[a-cdf]' a, b, c, d, or f LIKE '[-acdf]' -, a, c, d, or f LIKE '[ [ ]' [ LIKE ']' ]

SQL查询中的转义字符
2007-09-20 08:57
如果想查找“_cs”结尾的的账户
select * from [user] where loginname like '%_cs'是不行的,_ 被认为是任意的字符,
所以需要转义字符,有两种写法:
select * from [user] where loginname like '%[_]cs' select * from [user] where loginname like '%/_cs' escape'/'

通配符 含义
% 包含零个或更多字符的任意字符串。
_ 任何单个字符。
[ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
[^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。

例如:

  • LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
  • LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
  • LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
  • LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
  • LIKE '[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
  • LIKE '[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
  • LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如 MacFeather)。

使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:

WHERE ColumnA LIKE '%5/%%' ESCAPE '/' 
符号 含义
LIKE '5[%]' 5%
LIKE '5%' 5 后跟 0 个或更多字符的字符串
LIKE '[_]n' _n
LIKE '_n' an, in, on (and so on)
LIKE '[a-cdf]' a, b, c, d, or f
LIKE '[-acdf]' -, a, c, d, or f
LIKE '[ [ ]' [
LIKE ']' ]

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Adi_liu/archive/2007/12/06/1920606.aspx

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/daryl715/archive/2007/02/14/1510014.aspx

使用 SQL 转义序列

开启低带宽视图
语言筛选器 : 全部

Visual Basic
C#
C++
J#
JScript
XAML
F#

同时提供下列产品的其他版本:
  • SQL Server 2005
 
使用 SQL 转义序列

按照 JDBC API 的定义,Microsoft SQL Server JDBC Driver 支持使用 SQL 转义序列。转义序列用于 SQL 语句内,以告诉驱动程序应以不同的方式处理 SQL 字符串的转义部分。当 JDBC 驱动程序处理 SQL 字符串的转义部分时,它会将字符串的这一部分转换为 SQL Server 可以理解的 SQL 代码。

JDBC API 需要五种类型的转义序列,JDBC 驱动程序支持所有这些转义序列:

  • LIKE 通配符文本

  • 函数处理

  • 日期和时间文本

  • 存储过程调用

  • 外部联接

JDBC 驱动程序使用的转义序列语法如下所示:

{keyword ...parameters...}

注意:

SQL 转义处理对于 JDBC 驱动程序始终是打开的。

以下各部分介绍五种类型的转义序列以及 JDBC 驱动程序如何支持它们。

LIKE 通配符文本

JDBC 驱动程序支持 {escape 'escape character'} 语法,以便将 LIKE 子句通配符用作文本。例如,以下代码将返回 col3 的值,其中 col2 的值实际上以下划线开始(而不是对其使用通配符)。

 
 

复制代码

ResultSet rst = stmt.executeQuery("SELECT col3 FROM test1 WHERE col2
LIKE '\\_%' {escape '\\'}");

注意:

转义序列必须位于 SQL 语句的结尾。如果一个命令字符串中有多个 SQL 语句,则转义序列需要位于每个相关 SQL 语句的结尾。

函数处理

JDBC 驱动程序使用以下语法在 SQL 语句中支持函数转义序列:

 
 

复制代码

{fn functionName}

其中,functionName 是由 JDBC 驱动程序支持的函数。例如:

 
 

复制代码

SELECT {fn UCASE(Name)} FROM Employee

下表列出当使用函数转义序列时,JDBC 驱动程序支持的各种函数:

 
字符串函数 数值函数 日期时间函数 系统函数

ASCII

CHAR

CONCAT

DIFFERENCE

INSERT

LCASE

LEFT

LENGTH

LOCATE

LTRIM

REPEAT

REPLACE

RIGHT

RTRIM

SOUNDEX

SPACE

SUBSTRING

UCASE

ABS

ACOS

ASIN

ATAN

ATAN2

CEILING

COS

COT

DEGREES

EXP

FLOOR

LOG

LOG10

MOD

PI

POWER

RADIANS

RAND

ROUND

SIGN

SIN

SQRT

TAN

TRUNCATE

CURDATE

CURTIME

DAYNAME

DAYOFMONTH

DAYOFWEEK

DAYOFYEAR

EXTRACT

HOUR

MINUTE

MONTH

MONTHNAME

NOW

QUARTER

SECOND

TIMESTAMPADD

TIMESTAMPDIFF

WEEK

YEAR

DATABASE

IFNULL

USER

注意:

如果您试图使用数据库不支持的函数,则将发生错误。

日期和时间文本

用于日期、时间和时间戳文本的转义语法如下所示:

 
 

复制代码

{literal-type 'value'}

其中,literal-type 为以下值之一:

 
文本类型 说明 值格式

d

日期

yyyy-mm-dd

t

时间

hh:mm:ss [1]

ts

时间戳

yyyy-mm-dd hh:mm:ss[.f...]

例如:

 
 

复制代码

UPDATE Orders SET OpenDate={d '2005-01-31'}
WHERE OrderID=1025

存储过程调用

JDBC 驱动程序对于存储过程调用支持 {? = call proc_name(?,...)}{call proc_name(?,...)} 转义语法,具体取决于您是否需要处理返回参数。

过程是存储在数据库中的可执行对象。通常,它是一个或更多的已经预编译的 SQL 语句。调用存储过程的转义序列语法如下所示:

 
 

复制代码

{[?=]call procedure-name[([parameter][,[parameter]]...)]}

其中,procedure-name 指定存储过程的名称,parameter 指定存储过程参数。

有关将 call 转义序列用于存储过程的详细信息,请参阅使用带有存储过程的语句。

外部联接

JDBC 驱动程序支持 SQL92 左联接、右联接和完全外部联接语法。外部联接的转义序列如下所示:

 
 

复制代码

{oj outer-join}

其中,外部联接为:

 
 

复制代码

table-reference {LEFT | RIGHT | FULL} OUTER JOIN
{table-reference | outer-join} ON search-condition

其中,table-reference 为表名,search-condition 为您要用于这些表的联接条件。

例如:

 
 

复制代码

SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID} WHERE Orders.Status='OPEN'

JDBC 驱动程序支持以下外部联接转义序列:

  • 左外部联接

  • 右外部联接

  • 完全外部联接

  • 嵌套外部联接

转载于:https://www.cnblogs.com/YangFei-wow/archive/2012/07/10/2584101.html

SQLServer转义问题相关推荐

  1. SQL Server转义下划线

    本文翻译自:SQL Server Escape an Underscore How do I escape the underscore character? 如何转义下划线字符? I am writ ...

  2. html空格转义字符 %3e,转义字符串

    (Escape character),原本是指ASCII中的十进制27,十六进制1B,八进制033所定义的那个字符.对应于标准键盘左上角的ESC键.老式键盘如果没有ESC键,替代输入是"Ct ...

  3. c 字符串 html转义字符串,字符串转义字符

    转义字符是编程语言中表示字符的一种特殊形式.字符串转义字符是用来表示字符集中定义的字符,或者是某一些特定的字符在编辑语言中被定义为特殊用途的字符.一般用于表示不能直接显示的字符,比如后退键.回车键等, ...

  4. Mybatis特殊字符处理

    方案一:使用转义字符 转义字符:   转义字符是一种特殊的字符常量.转义字符以反斜线""开头,后跟一个或几个字符.转义字符具有特定的含义,不同于字符原有的意义,故称"转义 ...

  5. c语言 转移字符',转义字符

    所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等, ...

  6. java转义字符包括元字符_正则表达式的元字符和转义字符,又及转义字符和ASCII码之间的关系小解...

    1.正则表达式的组合 正则表达式由元字符和转义字符组成 元字符有 ^ :断言目标的开始位置(或多行模式下的行首位置) $ :断言目标的介绍位置(或多行模式下的结尾位置) . :匹配除换行符外的其他任何 ...

  7. 大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

    c#代码,批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){th ...

  8. date比较大小 mybatis_MyBatis Sqlserver日期比较

    SqlServer时间与字符串相互转换: SQL Server Date 函数 CONVERT(目标类型,'输入内容'[时间/字符串],格式); 字符串转为时间类型 CONVERT(datetime, ...

  9. 代码生成工具之数据库表及字段名称转义

    在上篇随笔<代码生成工具之界面快速生成>中介绍过了代码生成工具Database2Sharp是如何快速生成所需的Web界面以及各种Winform界面,其中包括生成即可运行的Web界面效果,W ...

最新文章

  1. 行业|深度解析:医疗机器人商用要过几道坎
  2. Python3 与 C# 面向对象之~封装
  3. tensorflow GPU笔记
  4. 使用snmp4j实现Snmp功能(二)
  5. nssl1209-奇怪的队列【贪心,权值线段树】
  6. 关于数据预处理的7个重要知识点,全在这儿了!
  7. java加密算法入门(三)-非对称加密详解
  8. JDK8新特性-Lambda表达式查找
  9. Native方式运行Fabric(非Docker方式)
  10. 函数式语言(functional language)的相关了解
  11. Julia: 关于下载库时WinRPM的Bug
  12. 极客大学产品经理训练营:产品规划与功能规划 第15课总结
  13. angularjs 笔记(1) -- 引导
  14. 推荐两款好用的企业级内网穿透软件
  15. 实战7:机器学习实战之 随机森林、逻辑回归、SVM算法方法进行垃圾邮件过滤分类 代码+数据
  16. Python下载网易云音乐(云音乐飙升榜)
  17. Python——赋值语句
  18. JS 手机浏览器唤醒手机QQ
  19. 信息化知识-国家信息化体系
  20. 分析器错误信息:nbsp;无法识别的配置节…

热门文章

  1. crt脚本怎么添加等待时间_secureCRT自动化脚本(之定时任务)
  2. 电脑组装与维护教程_小白不会装机?教你如何自己组装一台电脑。装机图文教程...
  3. python简单可视化聊天界面_如何用Python制作可视化输入界面
  4. 对大量转载贴识别算法的研究
  5. Ubuntu下切换Python版本
  6. ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...
  7. mssql 为什么连接是sleeping 而不释放_什么是数据仓库,以及我为什么需要它?
  8. gdi画平滑直线_石膏几何体不会画?那是你没有画过这些,学会画石膏很简单,收藏...
  9. 特征级融合_更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)...
  10. 2019暑假第三周总结