当前位置: 代码迷 >> Sql Server >> 下划线_代表一个汉字或字母吗?该如何解决
  详细解决方案

下划线_代表一个汉字或字母吗?该如何解决

热度:20   发布时间:2016-04-27 20:01:29.0
下划线_代表一个汉字或字母吗?
我原以为是两个_   _   代表一个汉字
结果一试   like   '张_   _   '
张a
张飞
都可以!


------解决方案--------------------
如果你的字段是nchar 不是char那么的确是这样,
因为nchar 不管是什么字母都占两位

或者你的字段是char 不是 varchar 那么也是这样
因为 张a 后面还有 空格,所以也能匹配
------解决方案--------------------
“_”表示任何单个字符。一个汉字、一个字母、一个数字、一个符号、一个其它字符集的字符,都是一个字符。

like '张_ _ '
应该“张a”和“张飞”都查找不出来吧

declare @temp table (test varchar(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '



------解决方案--------------------
declare @temp table (test varchar(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '

/*结果
test
----------
张飞
张a

test
----------
张弓长
*/


declare @temp table (test char(10))
insert @temp select '张飞 ' union all select '张a ' union all select '张弓长 '
select * from @temp where test like '张_ '
select * from @temp where test like '张__ '

/*结果
test
----------
张飞
张a

test
----------
张飞
张a
张弓长
*/
  相关解决方案