下面是一段SQL模糊查询的存储过程
ALTER proc proDemo
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+(@name)+'%'表里面有一个数据 内容是admin在调用存储过程的时候
exec proDemo 'ad' 根本就查不到数据
exec proDemo 'admin' 这样可以查到,
也就是说它根本就没有实现模糊查询的功能。不知道这是为什么? 如果把存储过程改成下面的那样那一切就正常了。
ALTER proc proDemo
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+rtrim(@name)+'%'
难道和空格我什么关系吗?
ALTER proc proDemo
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+(@name)+'%'表里面有一个数据 内容是admin在调用存储过程的时候
exec proDemo 'ad' 根本就查不到数据
exec proDemo 'admin' 这样可以查到,
也就是说它根本就没有实现模糊查询的功能。不知道这是为什么? 如果把存储过程改成下面的那样那一切就正常了。
ALTER proc proDemo
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+rtrim(@name)+'%'
难道和空格我什么关系吗?
解决方案 »
- 怎样创建这样一个表?表的表名和字段名都要从参数当中获得。
- 有点难度,关于数据库备份和还原
- 求一条超难的sql语句??
- SQL+语法请教
- SQLServer报错
- 多记录合成一条全的记录?
- SQL存储过程的问题
- 高分求一个oracle的存储过程在sqlserver2000中该怎么写!!!!!!!!!!!!!!!!!!!!
- table1中为所有用户,table2中为所有交费用户(table2为table1的子集),请问怎样怎样用sql语句查table1中所有未交费用户?
- 十万火急,如何将IE标题栏上的文字去掉?
- 请问:sql2005是如何在视窗界面下创建默认值的?
- 给出一个表名的一部分,怎么能判断数据库中是否包含这样的表?
select * from DemoLogin where UserName like '%'+trim(@name)+'%'
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+(@name)+'%'去掉'()'-->ALTER proc proDemo
@name nchar(20)
as
select * from DemoLogin where UserName like '%'+@name+'%'
SELECT CASE WHEN 'admin' LIKE '% admin%' THEN 1 ELSE 0 END
SELECT CASE WHEN 'admin' LIKE '%admin%' THEN 1 ELSE 0 END
/*
-----------
0(所影响的行数为 1 行)
-----------
0(所影响的行数为 1 行)
-----------
1
*/
兄弟,我说的是存储过程 ,不是SQL语句,SQL语句那样写是正确的,但是存储过程里面定义了@name nchar(20)。