这个sql要怎写?

现在有一篇文章,在后台添加文章时设有几个关键字,关键字之间用|隔开,现在我想分别获取这些关键字,现在有种方法是用sql+js来实现。
QL查询语句:

select Keyword from PE_Article Where ArticleID={input(0)}

标签内容:

{Loop}{Infobegin}<script language="JavaScript">
var kw;
kw="{$Field(0,Text,0,0,0)}";
var temp
temp=kw.split("|")
document.write ("Tags:");
for(i=0;i<temp.length;i++){
document.write("<b><a href=/Search.asp?ModuleName=Article&Field=Keywords&keyword="+temp[i]+">"+temp[i]+"</a></b> ");
}
</script> {Infoend}{/Loop}
现在我想不要用到js来分割关键字,直接在sql中来分割,那么这个sql要怎样写呢?
可以给个sql语句吗?我本人不会sql
最新回答
花颜诱人醉

2021-05-11 10:18:14

--建立分慧谈答割函侍旅数
create function f_split(
@c varchar(2000),
@split varchar(2)
)
returns @t table(col varchar(20))
as
begin

while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
go

--调用函数
declare @tem varchar(50)
select @tem =(select Keyword from PE_Article Where ArticleID={input(0)})
select * from dbo.f_split(@tem,'前慧|')

go
输了却不死心

2024-01-02 07:07:12

给你个友键高提示,语句亮世自己写
如果是sqlserver用charindex函数
如果是oracle就好尺用instr函数
烟酉

2020-11-21 20:02:46

其实亏运你可以用正则
字销肆梁符雹前串: fdsklgjfsdk|aaaaa|ddddeee|dsfdsfds
正则就是 fdsklgjfsdk|aaaaa|ddddeee|dsfdsfds
≮陌路≯七

2023-07-03 15:39:19

在SQL中分解不可行。因为关键字的个数是森弯不确定的,在SQL中分解后每一个关键字此纳闷都要有一个字段对应,对后续程序来说操作起来也不方便茄吵。