如何判断集合的包含问题:比如说,现在在A表中有两个字段x,y
如果x的值是21;2;51;14
y的值是0;21;2;51;14
我如何判断x字段中的值y字段中,其中y 字段中的顺序不一定和x 中的顺序一样,
我如何判断?
如果x的值是21;2;51;14
y的值是0;21;2;51;14
我如何判断x字段中的值y字段中,其中y 字段中的顺序不一定和x 中的顺序一样,
我如何判断?
解决方案 »
- 两个表达式如何比对
- 求一个sql语句,关于查询出的整型变成浮点型并除以100
- 请教多表的级联关系或者触发器的写法?
- 如何对两个关联表进行查询?
- sql server存放照片表设计
- 百年树人(josy) 大哥和高手,看到请帮忙!谢谢。高手现身吧!!
- 关于一个简单的触发器问题!
- SQL语句菜鸟级问题,快来抢分,大虾看看小弟做的对不对
- 见文章内容中的SQL语句,如果把Insert Into 拿掉,结果出来只要3秒,可把Insert Into开起来就要36秒,是什么原因啊?
- SQL题求指导
- 如何求得分段时间内各时间分段中某列出现频率最高的列的值(不创建临时表)!
- 一个很简单的传递变量的sql语句,进来帮一下
[Microsoft][ODBC SQL Server Driver]语法错误或违反访问规则
seelct count(*) as acount2 from a
比较acount1和acount2就能知道是否包含了。
acount2>acount1 不包含
acount2<=acount1 包含
seelct count(x) as acount2 from a
比较acount1和acount2就能知道是否包含了。
acount2>acount1 不包含
acount2<=acount1 包含
试试看。
--返回1表示包含,0不包含
create function dbo.f_test(@x varchar(100),@y varchar(100))
returns int
as
begin
declare @str varchar(100)
declare @flag int
set @flag=1
while charindex(';',@x)>0
begin
set @str=substring(@x,1,charindex(';',@x)-1)
if charindex(';'+@str+';',';'+@y+';')=0
begin
set @flag=0
break
end
set @x=right(@x,len(@x)-charindex(';',@x))
end
return @flag
endgo
select @sql='select lie=',@str='a;b;c;d;'
select @sql=@sql+''''+replace(@str,';',''' union all select ''')
select @sql=left(@sql,len(@sql)-18)
--print @sql
exec(@sql)
参数输入x,y得值
分别得到x,y拆分得到的一个表
再对此两表操作,x->a表,y->b表
看b表是否包含a表
是则返回一个数表示真
反之否则返回一个数表示假