1. 程式人生 > >sql精確查詢逗號隔開的欄位

sql精確查詢逗號隔開的欄位

--先建立一個函式,用來拆分欄位值
Create Function f_split1(@SourceSql Varchar(8000),@StrSeprate Varchar(2)) 
Returns @temp Table(id Int Identity(1,1), col Varchar(100)) 
As 
begin 
Declare @ch as Varchar(100) 
Set @[email protected][email protected] 
While(@SourceSql<>'') 
Begin 
Set @ch=left(@SourceSql,Charindex(@StrSeprate,@SourceSql,1)-1) 

Insert @temp(col) Values(@ch) 
Set @SourceSql=Stuff(@SourceSql,1,Charindex(@StrSeprate,@SourceSql,1),'') 
End 
Return 
End 
Go

--以下是查詢程式碼
Select * From (
Select T.id,A.col As Wid,B.col As WName From T 
Cross Apply dbo.f_split1(wid,',') A
Cross Apply dbo.f_split1(wname,',') B
where A.id=B.id) S
Where Wid='2' And WName='qq'


--解釋,把欄位按逗號拆分後,按自增id關聯起來,及wid的第一個值跟wname的第一個值關聯,以後依次,然後用等號查詢你要的值