sql 字符串匹配问题

yangjinju2008 2013-03-29 01:56:24
我有两组数据
第一组:'KM,GD,XS,LD'
第二组:'KM,GD,XS,CG,LD,JK,GX'
我要怎么知道第一组中的数据是包含在第二组中呢,只要逗号前面的字符匹配就可以.
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuifengde 2013-03-29
  • 打赏
  • 举报
回复
CREATE FUNCTION JText(@a1 VARCHAR(100),@a2 VARCHAR(100))
RETURNS BIT 
AS 
BEGIN	
	DECLARE @Min VARCHAR(100),@Max VARCHAR(100),@Tmp VARCHAR(20),@Bit BIT
	SET @Bit=1
	IF LEN(@a1)<LEN(@a2)
		SELECT @Min=@a1,@Max=@a2
	ELSE 
		SELECT @Min=@a2,@Max=@a1	
	SELECT @Min=@Min+',',@Max=@Max+ ',', @Tmp=LEFT(@Min,CHARINDEX(',',@Min))			
	WHILE @Tmp<>''
	BEGIN
		IF CHARINDEX(@Tmp,@Max)=0 
		BEGIN
			SET @Bit=0
			BREAK	
		END			
		SELECT @Min=REPLACE(@Min,@Tmp,''), @Tmp=LEFT(@Min,CHARINDEX(',',@Min))		
	END	
	RETURN @Bit	
END 

GO
DECLARE @a1 VARCHAR(100) ,@a2 VARCHAR(100)
SET @a1='KM,GD,XS,LD'
SET @a2='KM,GD,XS,CG,LD,JK,GX'

SELECT CASE WHEN dbo.Jtext(@a1,@a2)=0 THEN '不包含' ELSE '包含' END
七不语v 2013-03-29
  • 打赏
  • 举报
回复
用XML来生成列直得一学。。
chuanzhang5687 2013-03-29
  • 打赏
  • 举报
回复
create table tb(id int,value varchar(30))

insert into tb values(1,'KM,GD,XS,LD')
insert into tb values(2,'KM,GD,XS,CG,LD,JK,GX')
go

if not exists(
	select 1 from 
	(
		SELECT a.id, B.value
		FROM(
		  SELECT id, [value] = CONVERT(xml,'<root><v>' + REPLACE([value], ',', '</v><v>') + '</v></root>') FROM tb
		)A
		OUTER APPLY(
		  SELECT value = N.v.value('.', 'varchar(100)') FROM A.[value].nodes('/root/v') N(v)
		)B 
	) t 
	where id = 1 and 
	value not in 
	(
		select value from 
		(
			SELECT a.id, B.value
			FROM(
			  SELECT id, [value] = CONVERT(xml,'<root><v>' + REPLACE([value], ',', '</v><v>') + '</v></root>') FROM tb
			)A
			OUTER APPLY(
			  SELECT value = N.v.value('.', 'varchar(100)') FROM A.[value].nodes('/root/v') N(v)
			)B 
		) t where id = 2
	)
)
begin 
	print '全部包含';
end
else 
begin
	print '没有全部包含';
end
yangjinju2008 2013-03-29
  • 打赏
  • 举报
回复
引用 楼主 yangjinju2008 的回复:
我有两组数据 第一组:'KM,GD,XS,LD' 第二组:'KM,GD,XS,CG,LD,JK,GX' 我要怎么知道第一组中的数据是包含在第二组中呢,只要逗号前面的字符匹配就可以.
是写在sql的where条件里的
  • 打赏
  • 举报
回复
这种判断不建议用sql,最好放在程序里面
睿智天成 2013-03-29
  • 打赏
  • 举报
回复
请问2组数据是查询出来的吗?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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