标题:SQL模糊查询中文问题(高手进)
只看楼主
lzm
Rank: 1
来 自:广东
等 级:新手上路
帖 子:156
专家分:0
注 册:2007-9-2
结帖率:33.33%
已结贴  问题点数:20 回复次数:2 
SQL模糊查询中文问题(高手进)
我们在中文版本进行模糊查询时
用select * from students where Name like '%张三%'  查询正确
我们在英文版本进行模糊查询时
用select * from students where Name like N'%张三%'  查询正确


我们要把查询条件变成变量时-中文版数据库
Declare @name nvarchar(20) = '张三'
用select * from students where Name like '%' + @name + '%'  查询正确

在英文版的数据库里
Declare @name nvarchar(20) = '张三'
用select * from students where Name like N'%' + @name + '%'  查询不出数据

那位高手知道这种情况应该怎么写呢?
2016-10-27 09:33
lzm
Rank: 1
来 自:广东
等 级:新手上路
帖 子:156
专家分:0
注 册:2007-9-2
得分:0 
问题已解决,感谢大家
正确写法
在英文版的数据库里
Declare @name nvarchar(20) = N'张三'
用select * from students where Name like '%' + @name + '%'  查询正确

类型一定要用nvarchar(20) 而varchar(20)是不行的
关键是 在赋值时一定要用 类型nvarchar(20),并且赋值时一定要加N,也就是Declare @name nvarchar(20) = N'张三'
2016-10-27 09:58
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:20 
自己解决了,这真是极好的,自己搞定的东西,不会忘记。
2016-10-27 15:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470325-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.201356 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved