服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - SQLServer中求两个字符串的交集

SQLServer中求两个字符串的交集

2019-11-14 17:24mssql教程网 Sql Server

代码高亮有点问题,测试时把@ 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, 
*/ 

延伸 · 阅读

精彩推荐