做一个模糊查找的存储过程
-- 第一种
alter proc selectPerson
@name varchar ( 10)
--@number int
AS
declare @sql varchar( 2000 )
set @sql = 'select
* from test.dbo.TZ where (Z_name like ''%' +@name + '%''
OR '''+ @name+ '''='''')'
print @sql
exec (@sql )
--执行
selectPerson 'd'
--因为SQL中根据两边引号识别字符串,所以先去掉@sql两边引号
--结果:
select * from test .dbo . TZ where (Z_name like '' % (参数) % '' OR ''
(参数) ''= '''' )
--再次去掉两边引号:
select * from test .dbo . TZ where (Z_name like ' %
(参数) % ' OR '
(参数) '= ''
--这是PRINT的结果,即在数据库中解析为:
select * from test .dbo . TZ where (Z_name like '%d%' OR 'd'= '' )
简单记为在SQL中 用两边的引号标示字符串,在这个字符串中要用两个引号 来表示 一个引号
-- 第二种
alter proc selectPerson
@name varchar ( 10)
--@number int
AS
select * from TZ where Z_name like '%' + @name+ '%'
本文介绍两种使用SQL存储过程实现模糊查询的方法。第一种方法通过动态SQL实现灵活的模糊匹配,第二种方法则直接利用LIKE子句完成查询。这两种方法均可用于按名称部分匹配的情况。
2788

被折叠的 条评论
为什么被折叠?



