当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQLServer中求两个字符串的交集

MSSQL
SQL数据操作基础(初级)3
SQL数据操作基础(初级)4
SQL数据操作基础(初级)5
SQL数据操作基础(中级)6
SQL数据操作基础(中级)7
SQL数据操作基础(中级)8
SQL数据操作基础(中级)9
SQL数据操作基础(中级)10
如何找出消耗cup的进程信息和执行的语句
改善SQL Server内存管理
减少SQL日志的三种方法
SQL脚本生成的一些BUG(1)
SQL脚本生成的一些BUG(2)
sqlserver日志文件总结及充满处理
启动SQL SERVER时自动执行存储过程
SQL Server 连接基础知识
修改用户定义的数据类型
利用MSSQL sp自制未公开的加密函数
让你的SQL运行速度明显提高
十大绝招保护SQL Server数据库安全

MSSQL 中的 SQLServer中求两个字符串的交集


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 241 ::
收藏到网摘: n/a

代码高亮有点问题,测试时把@ str替换为@str 使用javascript的数组来计算,代码如下:
复制代码 代码如下:

use tempdb
go
if (object_id ('fn_getArray' ) is not null )
drop function dbo . fn_getArray
go
create function fn_getArray (@ inStr1 varchar (8000 ), @ inStr2 varchar (8000 ))
returns varchar (8000 )
as
begin
declare @ str varchar (8000 )
set @ str = '
var a = [''' + replace (@ inStr1 , ',' , ''',''' )+ '''];
var b = [''' + replace (@ inStr2 , ',' , ''',''' )+ '''];
var c=""
for (var i=0;i<a.length;i++)
{
for (var j=0;j<b.length;j++)
{ if(a[i]==b[j]&&c.indexOf(a[i])<0)
c+=a[i]+","
}
}
'
declare @ object int
declare @ r varchar (800 )
exec sp_OACreate 'MSScriptControl.ScriptControl' , @ object output
exec sp_OASetProperty @ object , 'Language' , 'javascript'
exec sp_OAMethod @ object , 'eval' , @ r out , @ str
return @ r
end
go
select dbo . fn_getArray ('abc,dced,f23e,gew432' , '23c,abc,f23e,geafd,ged' )
/* 输出
abc,f23e,
*/