SQLServer中求兩個(gè)字符串的交集
更新時(shí)間:2009年08月27日 00:46:14 作者:
代碼高亮有點(diǎn)問(wèn)題,測(cè)試時(shí)把@ str替換為@str
使用javascript的數(shù)組來(lái)計(jì)算,代碼如下:
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ù)庫(kù)中符合條件的記錄的總數(shù)
這篇文章主要介紹了SQL查詢數(shù)據(jù)庫(kù)中符合條件的記錄的總數(shù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09SQL創(chuàng)建的幾種存儲(chǔ)過(guò)程
表名和比較字段可以做參數(shù)的存儲(chǔ)過(guò)程2010-05-05查詢SQL Server Index上次Rebuild時(shí)間的方法
這篇文章主要介紹了查詢SQL Server Index上次Rebuild時(shí)間的方法,本文直接給出實(shí)現(xiàn)腳本代碼,需要的朋友可以參考下2015-07-07SQL Server 2005 創(chuàng)建簡(jiǎn)單的存儲(chǔ)過(guò)程--總結(jié)分析
本篇文章是對(duì)使用SQL Server 2005創(chuàng)建簡(jiǎn)單的存儲(chǔ)過(guò)程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06SqlServer數(shù)據(jù)庫(kù)備份與還原的實(shí)現(xiàn)步驟
這篇文章主要介紹了SqlServer數(shù)據(jù)庫(kù)備份與還原的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03一個(gè)常用的報(bào)表統(tǒng)計(jì)SQL語(yǔ)句
在平常的系統(tǒng)開(kāi)發(fā)中,我們經(jīng)常會(huì)遇到類(lèi)似下圖的報(bào)表統(tǒng)計(jì)功能需求。2010-12-12