注册 登录
编程论坛 SQL Server论坛

SQL模糊查询中文问题(高手进)

lzm 发布于 2016-10-27 09:33, 3098 次点击
我们在中文版本进行模糊查询时
用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 + '%'  查询不出数据

那位高手知道这种情况应该怎么写呢?
2 回复
#2
lzm2016-10-27 09:58
问题已解决,感谢大家
正确写法
在英文版的数据库里
Declare @name nvarchar(20) = N'张三'
用select * from students where Name like '%' + @name + '%'  查询正确

类型一定要用nvarchar(20) 而varchar(20)是不行的
关键是 在赋值时一定要用 类型nvarchar(20),并且赋值时一定要加N,也就是Declare @name nvarchar(20) = N'张三'
#3
厨师王德榜2016-10-27 15:55
自己解决了,这真是极好的,自己搞定的东西,不会忘记。
1