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

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 14:55 点击:

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

有产品分类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返回值的,哪位兄弟会的希望帮忙解决一下

 
/* 

-- ============================================= 

-- Author:      <饭饭> 

-- Create date: <2011-10-19> 

-- Description: <查询格式为(1,2,3,4,5)中是否包含其中一项> 

-- ============================================= 

*/ 

Create Function [dbo].[HasKey](@DataStr varchar(100),@key varchar(8)) 

returns int

as

 

    begin

    --declare @str varchar(50) 

        declare @return_str varchar(50) 

        declare @isok bit

        set @isok = 0 

        --set @DataStr='a,b,c,d,e' 

        while len(@DataStr)>0 and @isok=0 

            begin

                set @return_str = substring(@DataStr,1,1) 

                    if @return_str=@key

                        begin

                        set @isok=1 

                        break 

                        end

                declare @posi int    

                set @posi= charindex(',',@DataStr) 

                if @posi=0 

                break; 

                set @DataStr=substring(@DataStr,@posi+1,len(@DataStr)-@posi) 

              

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • 如何将多个SQL查询统计结果一次显示出来
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1