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

2016-02-19 10:03 15 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - 编程语言 】

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

      id          name        parnet  1A02B03a11,2

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

另外,这个东西我想弄成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

来源:http://www.tulaoshi.com/n/20160219/1593163.html

延伸阅读
标签: SQLServer
SQL Server 2005中的T-SQL增强(一) 丰富的数据类型 Richer Data Types 1、varchar(max)、nvarchar(max)和varbinary(max)数据类型最多可以保存2GB的数据,可以取代text、ntext或image数据类型。 CREATE TABLE myTable(id INT,content VARCHAR(MAX)) 2、XML数据类型 XML数据类型允许用户在SQL Server数据库中保存XML片...
相比SQL Server 2000提供的FOR XML查询,SQL Server 2005版本对现有功能增强的基础上增加了不少新功能,最为吸引人的功能包括对Xml数据类型支持、使用PATH模式以及嵌套FOR XML查询支持等,这意味着通过新的FOR XML查询功能可以构造出结构更加灵活的Xml数据。 在SQL Server 2000中FOR XML查询的结果是直接以文本方式返回到客户端,为支...
标签: Web开发
首先要明确一个基本原则,XML类型的数据之间以及XML类型与其它数据类型之间都是不能比较的,也就是说XML类型的数据不能出现在等号的任何一边。 大致可分为查询类,修改类和跨域查询类。 查询类包含query(),value(),exist()和nodes(). 修改类包含modify(). 跨域查询类包含sql:variable()和sql:column(). 查询类 ...
标签: SQLServer
任何新软件发布的时候,你都会发现一些你不知道它的存在或者你不知道你需要的新特性。SQL Server 2000中的许多备份和重新存储方面的特性都原封不动地保留在SQL Server 2005中,但是也有一些新的特性值得你考虑一下。 镜像备份 SQL Server 2005让你创建镜像备份。镜像备份可以让你创建2个或者4个相同的备份文件的拷贝,以防某个集合被...
数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法。 将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁。 use Northwind begin tran insert into Orders(CustomerId) values(@#ALFKI@#) waitfor delay @#00:00:...

经验教程

648

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部