分割符

aaseh 2010-12-02 04:25:13

//伪代码
select * from table where id = '海关法'.slpit('')

//有上面这种语法吗?我想输入一个字符串,可以把字符串分割为一个个字符,然后再根据分割后的字符查找数据库。
//即:和下面的语句的实现效果是一样的

select * from table where id='海'
select * from table where id='关'
select * from table where id='法'
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
abuying 2010-12-03
  • 打赏
  • 举报
回复
--写一个切割函数!如果拆分空格的,可能需要改动一下,
--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
aaseh 2010-12-02
  • 打赏
  • 举报
回复
海,关,法
三个字在表里的排列顺序不同,结果也会不同的。我要求按照字符串"海关法"的顺序输出。
aaseh 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kongmajian 的回复:]
是指包涵‘海关法’这三个字的任何一个字的字段么?
[/Quote]
jamk 2010-12-02
  • 打赏
  • 举报
回复
是指包涵‘海关法’这三个字的任何一个字的字段么?
-晴天 2010-12-02
  • 打赏
  • 举报
回复
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 行受影响)

*/
「已注销」 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 aaseh 的回复:]
SQL code

//伪代码
select * from table where id = '海关法'.slpit('')

//有上面这种语法吗?我想输入一个字符串,可以把字符串分割为一个个字符,然后再根据分割后的字符查找数据库。
//即:和下面的语句的实现效果是一样的

select * from table where id='海'
select * from table where i……
[/Quote]
没有这样的用法。
要么像二楼那样的查询。
要么写循环分割字符拼接成条件再查询。
-晴天 2010-12-02
  • 打赏
  • 举报
回复
select * from table where id like '[海关法]'

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧