34,590
社区成员
发帖
与我相关
我的任务
分享
//伪代码
select * from table where id = '海关法'.slpit('')
//有上面这种语法吗?我想输入一个字符串,可以把字符串分割为一个个字符,然后再根据分割后的字符查找数据库。
//即:和下面的语句的实现效果是一样的
select * from table where id='海'
select * from table where id='关'
select * from table where id='法'
--写一个切割函数!如果拆分空格的,可能需要改动一下,
--3.2.1 循环截取法
CREATE FUNCTION f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO
create table tb(id nvarchar(10))
insert into tb select '海' union all select '关' union all select '法' union all select '案'
go
select * from tb where id like '[海关法]'
go
drop table tb
/*
id
----------
海
关
法
(3 行受影响)
*/
select * from table where id like '[海关法]'