ada*_*101 0 sql sql-server sql-server-2005 sql-server-2008
我在criteria
表的记录中保存了标准,我用它来创建一个动态查询字符串,它将查询一个source
表,并将该查询的结果插入到destination
表中.我的目标是,如果条件与表中的记录匹配,也将criteria
表中的id插入表中.如果匹配了多个条件记录,我只需插入第一个条件.destination
source
WHERE子句是通过对多个部分进行OR运算来构建的,并且在每个部分内将标准与AND组合在一起.类似于以下内容:
insert into destinationTable(col1, col2, col3)
select col1, col2, col3
from sourceTable
where
--' begin generated code'
(a = 525 and b = 324 and c = 4523) -- 'from criteria record 1'
or (d = 'asdf' and e = 3.43) -- 'from criteria record 2'
or (f = 234523 and g = 9823742) -- 'from criteria record 3'
etc...
--' end generated code'
Run Code Online (Sandbox Code Playgroud)
我需要找到一种方法来确定哪个是匹配条件的第一个OR部分,并在目标表中插入相应的条件id如何做到这一点?
您可以在Select子句中包含一个case语句,该语句将输出成功的第一个OR子句:
Select ...
, Case
When a = 525 And b = 324 And C = 4523 Then Criteria_Row_1_Pk
When d = 'asdf' and e = 3.43 Then Criteria_Row_2_Pk
....
End As SuccessClausePk
Run Code Online (Sandbox Code Playgroud)