我有一个临时表#temp321
,其中包含以下信息:
id|sourceFields|DestinationFields
---------------------------------
1 |c2 |c102
-------------------------
2 | c4 |c104
-----------------------
我还有一个变量@where_value
的where子句,如:
c1='v11' and c2='v22' and c3='v33' and c4='v44'
现在我只需将目标字段信息放入@where_value。
@where_value的预期结果是:c102='v22' and c104='v44'
我怎么能得到它。请帮助。
答案 0 :(得分:0)
Select @Var=@Var + CAST(DestinationFields as Varchar(30))+'='+ dbo.F_GetValue4Key(@where_value,sourceFields) +' AND '
from #temp321
Select @Var= SubString(@var,1,LEN(@var)-4)
假设您的Wherestring看起来像:
Select @where_value ='c1=''v11'' and c2=''v22'' and c3=''v33'' and c4=''v44'''
使用此功能
Create Function F_GetValue4Key(@p varchar(2000),@k varchar(2000)) Returns Varchar(50) as
begin
Declare @Result Varchar(50)
Declare @pos int
Declare @pos1 int
Declare @pos2 int
Select @pos=CHARINDEX( @k+'=',@p)
Select @pos1=CHARINDEX( '''',@p,@pos)
Select @pos2=CHARINDEX( '''',@p,@pos1+1)
Select @Result=SUBSTRING(@p,@pos1,@pos2-@pos1+1)
Return @Result
end