----首先定义一个
split函数,其作用是将
字符串拆分成表
CREATE FUNCTION [fn_split]
(@SourceSql varchar(8000), @StrSeprate varchar(10))
RETURNS @temp table
(
[n] int NULL,
[a] varchar(100) NULL
)
AS
BEGIN
declare @i int,@n int;
set @n=0;
set @SourceSql=rtrim(ltrim(@SourceSql));
set @i=charindex(@StrSeprate,@SourceSql);
while (@i>=1)
begin
set @n=@n+1;
insert @temp([n],[a]) values(@n,left(@SourceSql,@i-1));
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i);
set @i=charindex(@StrSeprate,@SourceSql);
end
if (@SourceSql<>'')
begin
set @n=@n+1;
insert @temp([n],[a]) values(@n,@SourceSql);
end
return
END
GO
--接下来利用这个函数将数组转化成表,查出A的对应值
declare @C varchar(100),@D varchar(100);
set @C='a1,a2,a3,a4,a5,a6';
set @D='b1,b2,b3,b4,b5,b6';
declare @A varchar(10),@B varchar(10);
set @A='a4';
select @B=t2.a from fn_split(@C,',') t1,fn_split(@D,',') t2 where t1.n=t2.n and t1.a=@A;
select @B;
--这里将得到@B=b4
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/c83d70cf3bc79f3d5eb7cbd7bba1cd11738b2986?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
--接下来就可以使用@B了
select TOP 7 * from Data_Content where title = @B order BY ID DESC