如果查询框里输入了>1个的查询关键字,传递到存储过程,那么sql语句如何写?

adultsite 2009-04-07 08:07:22
比如输入的是“北京□□□上海”(□代表空格,可>=1),
那就查询....where Column like '%北京%' OR '%上海%'


...全文
137 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcd0413 2010-08-17
  • 打赏
  • 举报
回复
declare @str varchar(500)
declare @result varchar(500)

set @str='中 心'
set @result=''

while (len(@str)>0)
begin
if(charindex(' ',@str)>0)
begin
set @result=@result+' % '+substring(@str,0,charindex(' ',@str))+' % or '
set @str=LTrim(substring(@str,charindex(' ',@str),len(@str)))
end
else
begin
set @result=' '+@result+' %'+@str+' %'
break
end
end
print @result


这个单引号没了,怎么弄?
scx0237 2010-05-07
  • 打赏
  • 举报
回复
传入个 @str='北京',‘上海’,‘南京’

@sql='select * from tableName where prov in ('+@str+')'

拙见,希望能帮助你。
Steve 2009-04-07
  • 打赏
  • 举报
回复
1.把多个空格替换成1个空格.
2.按空格分割字符串得到查询字索引数组.
3.用查询字索引数组构造SQL的正则表达式.
adultsite 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuyeede 的回复:]
用StringBiulder构建查询字符串。

[/Quote]

我是直接传递到存储过程里了。在存储过程里怎样把这些词分出来,然后根据条件构造sql语句?

sql查询语句就用了。我只想知道怎样在sql server存储过程里把“北京 上海 广东"这样的词给分出来。
  • 打赏
  • 举报
回复
没看懂,帮顶吧
liuyeede 2009-04-07
  • 打赏
  • 举报
回复
用StringBiulder构建查询字符串。
阿非 2009-04-07
  • 打赏
  • 举报
回复

declare @str varchar(500)
declare @result varchar(500)

set @str='北京 上海 天津 重庆'
set @result=''

while (len(@str)>0)
begin
if(charindex(' ',@str)>0)
begin
set @result=@result+' % '+substring(@str,0,charindex(' ',@str))+' % or '
set @str=ltrin(substring(@str,charindex(' ',@str),len(@str)))
end
else
begin
set @result=' '+@result+' %'+@str+' %'
break
end
end

print @result

机器没装SQL ,你自己试一下吧
wuyq11 2009-04-07
  • 打赏
  • 举报
回复
通过List<string>构建查询字符串
teerhu 2009-04-07
  • 打赏
  • 举报
回复
关注
adultsite 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 runffer_yang 的回复:]
1.把多个空格替换成1个空格.
2.按空格分割字符串得到查询字索引数组.
3.用查询字索引数组构造SQL的正则表达式.
[/Quote]
能否提供关键代码断?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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