一个用于处理分隔","的函数tf_split_str
--1. 建立测试数据
--1.1 create table TypeAdv
CREATE TABLE TypeAdv
(
id int,
TypeName varchar(200)
)
--1.2 insert data
insert into TypeAdv(id,TypeName) values(1,"电脑网络")
insert into TypeAdv(id,TypeName) values(2,"游戏动漫")
insert into TypeAdv(id,TypeName) values(3,"软件下载")
insert into TypeAdv(id,TypeName) values(4,"商务商铺")
insert into TypeAdv(id,TypeName) values(5,"建站服务")
insert into TypeAdv(id,TypeName) values(6,"门户综合")
insert into TypeAdv(id,TypeName) values(7,"影视音乐")
insert into TypeAdv(id,TypeName) values(8,"休闲娱乐")
insert into TypeAdv(id,TypeName) values(9,"生活资讯")
insert into TypeAdv(id,TypeName) values(10,"文学小说")
--1.3 create table TypeAdv
CREATE TABLE GroupAdv
(
id int,
GroupName varchar(200),
IntentionSet varchar(200)
)
--1.4 insert data
insert into GroupAdv(id,GroupName,IntentionSet) values(5,"广告分组一","1,2,3,4,5,6,7,10")
insert into GroupAdv(id,GroupName,IntentionSet) values(6,"广告分组二","1,2,3,4,5,6")
--2. 创建分隔“,”的函数
CREATE FUNCTION tf_split_str
(
@string NVARCHAR(4000)
)
RETURNS varchar(4000)
AS
BEGIN
DECLARE @object_id nvarchar(400)
DECLARE @i INT
DECLARE @len INT
declare @return varchar(400)
set @return=""

IF (@string IS NULL) OR (LTRIM(@string) = "")
RETURN @return
WHILE CHARINDEX(",",@string) > 0
BEGIN
SET @len = LEN(@string)
SET @i = CHARINDEX(",", @string)
SET @object_id = LEFT(@string, @i-1)
select @return = @return+","+TypeName from TypeAdv where id = @object_id
SET @string = RIGHT(@string, @len - @i)

END

SET @object_id = @string
select @return = @return+","+TypeName from TypeAdv where id = @object_id
set @return = stuff(@return,1,1,"")
RETURN @return
END
--3.测试
select b.id,b.GroupName,dbo.tf_split_str(b.IntentionSet) from GroupAdv b
--1.1 create table TypeAdv
CREATE TABLE TypeAdv
(
id int,
TypeName varchar(200)
)
--1.2 insert data
insert into TypeAdv(id,TypeName) values(1,"电脑网络")
insert into TypeAdv(id,TypeName) values(2,"游戏动漫")
insert into TypeAdv(id,TypeName) values(3,"软件下载")
insert into TypeAdv(id,TypeName) values(4,"商务商铺")
insert into TypeAdv(id,TypeName) values(5,"建站服务")
insert into TypeAdv(id,TypeName) values(6,"门户综合")
insert into TypeAdv(id,TypeName) values(7,"影视音乐")
insert into TypeAdv(id,TypeName) values(8,"休闲娱乐")
insert into TypeAdv(id,TypeName) values(9,"生活资讯")
insert into TypeAdv(id,TypeName) values(10,"文学小说")
--1.3 create table TypeAdv
CREATE TABLE GroupAdv
(
id int,
GroupName varchar(200),
IntentionSet varchar(200)
)
--1.4 insert data
insert into GroupAdv(id,GroupName,IntentionSet) values(5,"广告分组一","1,2,3,4,5,6,7,10")
insert into GroupAdv(id,GroupName,IntentionSet) values(6,"广告分组二","1,2,3,4,5,6")
--2. 创建分隔“,”的函数
CREATE FUNCTION tf_split_str
(
@string NVARCHAR(4000)
)
RETURNS varchar(4000)
AS
BEGIN
DECLARE @object_id nvarchar(400)
DECLARE @i INT
DECLARE @len INT
declare @return varchar(400)
set @return=""
IF (@string IS NULL) OR (LTRIM(@string) = "")
RETURN @return
WHILE CHARINDEX(",",@string) > 0
BEGIN
SET @len = LEN(@string)
SET @i = CHARINDEX(",", @string)
SET @object_id = LEFT(@string, @i-1)
select @return = @return+","+TypeName from TypeAdv where id = @object_id
SET @string = RIGHT(@string, @len - @i)
END
SET @object_id = @string
select @return = @return+","+TypeName from TypeAdv where id = @object_id
set @return = stuff(@return,1,1,"")
RETURN @return
END
--3.测试
select b.id,b.GroupName,dbo.tf_split_str(b.IntentionSet) from GroupAdv b
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: 使文本框中只能输入:中文的js
