存储过程可以模糊查询吗?????????????

ncist_jianeng 2012-04-26 11:33:57
create procedure book_history @bname char(30)='SQL%'
as
with cte_book
as (select * from book08 where bname like @bname)
select cte_book.bname,history08.*,reader08.name
from cte_book left outer join history08 join reader08
on reader08.lno = history08.lno
on cte_book.ISBN = history08.ISBN
go
execute book_history


解释一下。存储过程没有错,就是查不出数据。当execute book_history改成execute book_history 'SQL server 2008实用教程'时,就有数据
是不是存储过程不支持模糊查询啊???
...全文
113 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ncist_jianeng 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
char(30)=

改为 varchar(30) 看看
[/Quote]

就是这个问题。。。哈哈,谢谢了。
  • 打赏
  • 举报
回复
char(30)=

改为 varchar(30) 看看
ncist_jianeng 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
SQL code


--直接拼串就可以实现你的功能
create procedure book_history
@bname char(30) /*模糊查询的关键字*/
as
declare @sql nvarchar(1024)

set @sql = '一段SQL语句'+‘%' + convert(nvarchar(50),@bnam……
[/Quote]

谢谢你的回答。但我就是想要搞懂这个问题。实不实现结果倒是其次。
ncist_jianeng 2012-04-26
  • 打赏
  • 举报
回复
什么问题啊,很郁闷,问老师,也没有解释。。。。
十三门徒 2012-04-26
  • 打赏
  • 举报
回复
支持的,建议你把数据表发上来,数据发上来 大家帮你看看
APHY 2012-04-26
  • 打赏
  • 举报
回复

--直接拼串就可以实现你的功能
create procedure book_history
@bname char(30) /*模糊查询的关键字*/
as
declare @sql nvarchar(1024)

set @sql = '一段SQL语句'+‘%' + convert(nvarchar(50),@bname) + '%''

exec(@sql)
go
ncist_jianeng 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
select * from book08 where bname like 'SQL%'


有没有结果先

过程当然支持模糊查询!
[/Quote]
有的,有三个数据。。。execute book_history之后就不见了
xuam 2012-04-26
  • 打赏
  • 举报
回复
select * from book08 where bname like 'SQL%'


有没有结果先

过程当然支持模糊查询!
ncist_jianeng 2012-04-26
  • 打赏
  • 举报
回复
自己顶一下

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧