sql資料庫數組
發布時間: 2025-04-10 11:16:39
① 在sql中如何從數組中獲取值再進行查詢
----首先定義一個split函數,其作用是將字元串拆分成表
CREATEFUNCTION[fn_split]
(@SourceSqlvarchar(8000),@StrSepratevarchar(10))
RETURNS@temptable
(
[n]intNULL,
[a]varchar(100)NULL
)
AS
BEGIN
declare@iint,@nint;
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@Cvarchar(100),@Dvarchar(100);
set@C='a1,a2,a3,a4,a5,a6';
set@D='b1,b2,b3,b4,b5,b6';
declare@Avarchar(10),@Bvarchar(10);
set@A='a4';
select@B=t2.afromfn_split(@C,',')t1,fn_split(@D,',')t2wheret1.n=t2.nandt1.a=@A;
select@B;
--這里將得到@B=b4
--接下來就可以使用@B了
select TOP 7 * from Data_Content where title = @B order BY ID DESC
② sql server 查詢表 in一個數組
如果是一維數組:$nams=implode(',', ArrarLIst);
select * from table1 where name in ($names);
//注意字元查詢需要前後帶引號,數字不用
如果是多維數組:得遍歷ArrarLIst數組,取出相應的name再串聯起來
熱點內容