如一个表A一个类型字段记录为5XFZ-25
表B中类型字段记录为5XFZ-25、5XFZ-80、5BC2412 怎么判断B包含A的。
B中的类型都是以顿号隔开的字符串。怎么比较?
判断 B.IndexOf(A)>=0 即可。
B.Contains(A)应该可以吧?
CHARINDEX:返回字符或者字符串在另一个字符串中的起始位置。
CHARINDEX函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。
IF NOT OBJECT_ID('[t_DemoA]') IS NULL
DROP TABLE [t_DemoA]
GO
CREATE TABLE [t_DemoA]
([ID] int identity(1,1) primary key not null,
[Cate] nvarchar(255) null
)
go
IF NOT OBJECT_ID('[t_DemoB]') IS NULL
DROP TABLE [t_DemoB]
GO
CREATE TABLE [t_DemoB]
([ID] int identity(1,1) primary key not null,
[Cate] nvarchar(255) null
)
go
insert into t_DemoA
SELECT '5XFZ-28' union all
SELECT '5XFZ-27' union all
SELECT '5XFZ-80'
go
insert into t_DemoB
SELECT '5XFZ-25、5XFZ-80、5BC2412' union all
SELECT '5XFZ-23、5XFZ-80、5BC2412' union all
SELECT '5XFZ-28'
go
select * from t_DemoB B inner join t_DemoA A
on charindex(A.Cate+'、',B.Cate)>0
or charindex('、'+A.Cate,B.Cate)>0
or charindex(A.Cate,B.Cate)>0