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

前端之家收集整理的这篇文章主要介绍了Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天做项目遇到一个问题,

有产品分类A,B,C顶级分类,

期中A下面有a1,a2,a3子分类.

但是a1可能共同属于A和B,然后我的数据库是这样设计的

id name parnet

如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,

暂时没什么好办法,欢迎拍砖~~

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

代码如下:
5026"> @H_403_45@SET ANSI_NULLS ON @H_403_45@GO @H_403_45@SET QUOTED_IDENTIFIER ON @H_403_45@GO @H_403_45@/* @H_403_45@-- ============================================= @H_403_45@-- Author: <饭饭> @H_403_45@-- Create date: <2011-10-19> @H_403_45@-- Description: <查询分隔符分割的数据是否包含某项> @H_403_45@-- ============================================= @H_403_45@*/ @H_403_45@ALTER Function [dbo].[HasKey](@DataStr varchar(100),@key varchar(8)) @H_403_45@returns int @H_403_45@as @H_403_45@begin @H_403_45@declare @return_str varchar(50) @H_403_45@declare @isok bit @H_403_45@declare @posi int @H_403_45@set @isok = 0 @H_403_45@--set @DataStr = 'a,aaaa,aaaddd,ffass' @H_403_45@--set @key = 'aaaa' @H_403_45@set @DataStr = @DataStr+',' @H_403_45@while len(@DataStr) > 0 and @isok=0 @H_403_45@begin @H_403_45@set @posi= charindex(',',@DataStr) @H_403_45@set @return_str = replace(substring(@DataStr,1,charindex(',@DataStr)),'') @H_403_45@set @DataStr = substring(@DataStr,@posi+1,len(@DataStr)) @H_403_45@if(@return_str=@key) @H_403_45@begin @H_403_45@set @isok=1 @H_403_45@break @H_403_45@end @H_403_45@end @H_403_45@return @isok @H_403_45@end @H_403_45@GO @H_403_45@

猜你在找的MsSQL相关文章