• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > mssql2005教程 >

Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-07-01点击:
Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容,多个朋友给予的参考。
今天做项目遇到一个问题,
有产品分类A,B,C顶级分类,
期中A下面有a1,a2,a3子分类.
但是a1可能共同属于A和B,然后我的数据库是这样设计的
id name parnet
1 A 0
2 B 0
3 a1 1,2
如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,
暂时没什么好办法,欢迎拍砖~~

另外,这个东西我想弄成bool返回值的,哪位兄弟会的希望帮忙解决一下....

  1. SET ANSI_NULLS ON  
  2. GO  
  3. SET QUOTED_IDENTIFIER ON  
  4. GO  
  5. /*  
  6. -- =============================================  
  7. -- Author: <饭饭>  
  8. -- Create date: <2011-10-19>  
  9. -- Description: <查询分隔符分割的数据是否包含某项>  
  10. -- =============================================  
  11. */  
  12. ALTER Function [dbo].[HasKey](@DataStr varchar(100),@key varchar(8))  
  13. returns int  
  14. as  
  15. begin  
  16. declare @return_str varchar(50)  
  17. declare @isok bit  
  18. declare @posi int  
  19. set @isok = 0  
  20. --set @DataStr = 'a,aaaa,aaaddd,ffass'  
  21. --set @key = 'aaaa'  
  22. set @DataStr = @DataStr+','  
  23. while len(@DataStr) > 0 and @isok=0  
  24. begin  
  25. set @posicharindex(',',@DataStr)  
  26. set @return_str = replace(substring(@DataStr,1,charindex(',',@DataStr)),',','')  
  27. set @DataStr = substring(@DataStr,@posi+1,len(@DataStr))  
  28. if(@return_str=@key)  
  29. begin  
  30. set @isok=1  
  31. break  
  32. end  
  33. end  
  34. return @isok  
  35. end  
  36. GO  
猜你也喜欢看这些...

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ