广

MSSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-05-04 21:21:24 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

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

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

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

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

          id          name        parnet  
    1A0
    2B0
    3a11,2

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

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

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

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告