SQLServer中求兩個字符串的交集
更新時間:2009年08月27日 00:46:14 作者:
代碼高亮有點問題,測試時把@ str替換為@str
使用javascript的數(shù)組來計算,代碼如下:
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,
*/
復(fù)制代碼 代碼如下:
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,
*/
相關(guān)文章
SQL查詢數(shù)據(jù)庫中符合條件的記錄的總數(shù)
這篇文章主要介紹了SQL查詢數(shù)據(jù)庫中符合條件的記錄的總數(shù)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09查詢SQL Server Index上次Rebuild時間的方法
這篇文章主要介紹了查詢SQL Server Index上次Rebuild時間的方法,本文直接給出實現(xiàn)腳本代碼,需要的朋友可以參考下2015-07-07SQL Server 2005 創(chuàng)建簡單的存儲過程--總結(jié)分析
本篇文章是對使用SQL Server 2005創(chuàng)建簡單的存儲過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06SqlServer數(shù)據(jù)庫備份與還原的實現(xiàn)步驟
這篇文章主要介紹了SqlServer數(shù)據(jù)庫備份與還原的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03