SQL Server查询中,经常会遇到一些特殊字符,比如单引号“‘”等,这些字符的处理方法,是SQL Server用户都应该需要知道的。
我们都知道SQL Server查询过程中,单引号“‘”是特殊字符,所以在SQL Server查询的时候要转换成双单引号“‘‘”。但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:下划线“_”,百分号“%”,方括号“[]”以及尖号“^”。其用途如下:下划线:用于代替一个任意字符(相当于正...
中, 以下数据类型支持 Unicode 数据:
nchar, nvarchar, ntext
使用SQL语句操作的时候应该注意以下问题:
原查询语句
Select * From TABLENAME Where field1 like ‘%xxx%‘
使用 Unicode 数据类型的, 应该为:
Select * From TABLENAME Where field1 like N‘%xxx%‘
插入数据也一样
INSERT INTO TABLENAME(Detail) VALUES(‘?????‘)
修改为
INSERT INTO TABLENAME(Detail) VALUES(N‘?????‘)
不然韩文插入到数据库, 就会变成问号...
测试验证特殊符号能否存入数据库中:
其中,像一些普通单位符号比如“ ′〃﹩ $ ﹠ & £¥ ‰ % ℃ ¢℉”可以正常录入没有问题,但是万分号“?”之上就不可以了,录入后显示?;
一些数字符号录入没有问题,包括古希腊数字字符和圆圈字符等,例如“ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ①②③④⑤⑥⑦⑧⑨⑩⒈⒉⒊⒋ ⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ”...
测试验证特殊符号能否存入数据库中:
其中,像一些普通单位符号比如“ ′〃﹩ $ ﹠ & £¥ ‰ % ℃ ¢℉”可以正常录入没有问题,但是万分号“?”之上就不可以了,录入后显示?;
一些数字符号录入没有问题,包括古希腊数字字符和圆圈字符等,例如“ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ①②③④⑤⑥⑦⑧⑨⑩⒈⒉⒊⒋ ⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ”...
char(39)
select char(38)
SQLSERVER 插入 INSERT INTO 特殊字符过滤标签:har 字符 sele static pre span style string sql 本文系统来源:https://www.cnblogs.com/dushaojun/p/11002181.html
http://www.dqhxz.com/Post_572.html 如 SELECT @EmailTitle = REPLACE(@EmailTitle, [ , [[] ) --1 SELECT @EmailTitle = REPLACE(@EmailTitle, % , [%] ) --2 SELECT @EmailTitle = REPLACE(@EmailTitle, _ , [_] ) --3 SELECT @EmailTitle = http://www.dqhxz.com/Post_572.html 如 SELECT @EmailTitle = REPLACE(@EmailTitle,[,[[])--1 SELECT @EmailTitle = REPLACE(@EmailTitle,%,[%])--2 SELECT @EmailTitle ...
Codesnip, currently in used in my project: /// summary /// Encode theuser-input (with special character) into SQL query statement /// special character like : ,[,/,_,%...etc /// /summary /// param name="strValue" user-input /param /// par
Codesnip, currently in used in my project:///
/// Encode theuser-input (with special character) into SQL query statement
/// special character like : ,[,/,_,%...
今天在处理sql查询的时候遇到了like查询不到的问题,于是对问题进行剖析
问题:select * from v_workflow_rt_task_circulate where Name like %[admin]请假申请[2017-02-13至2017-02-13]%查询不到,但是在数据库中是存在在这一条数据的。
修改后:select * from v_workflow_rt_task_circulate where Name like %[[]admin]请假申请[[]2017-02-13至2017-02-13]%对于模糊查询需要对于特殊字符的处理(下划线_,百分号%,方括号[,尖号...
在计算机中,所有的数据在存储和运算时都要使用二进制数表示,包括52个字母(包括大写)、数字、常用的符号(例如、#、@等)。具体用哪些二进制数字表示哪个符号,大家就必须使用相同的编码规则,美国有关的标准化组织就出台了ASCII编码(美国信息交换标准代码)。SELECT CHAR(36); --显示的结果为$SQL中的替换函数replace()的语法格式如下:REPLACE ( stringexpression , stringpattern , stringreplacement )stringexpression 要搜...
在计算机中,所有的数据在存储和运算时都要使用二进制数表示,包括52个字母(包括大写)、数字、常用的符号(例如、#、@等)。具体用哪些二进制数字表示哪个符号,大家就必须使用相同的编码规则,美国有关的标准化组织就出台了ASCII编码(美国信息交换标准代码)。SELECT CHAR(36); --显示的结果为$SQL中的替换函数replace()的语法格式如下:REPLACE ( stringexpression , stringpattern , stringreplacement )stringexpression 要搜...
--去除特殊字符,只留0-9,a-z,A-Z
declare @teststr varchar(100)
set @teststr=test #123^we
while patindex(%[^0-9a-zA-Z]%,@teststr)>0
SET @teststr=STUFF(@teststr, patindex(%[^0-9a-zA-Z]%,@teststr),1,)
SELECT @teststr
----------------------------------------------------------------------------------------------------
test123we
(1 行受影响)————————————————版权声明:本文为C...