确定选择记录的OR语句?

ada*_*101 0 sql sql-server sql-server-2005 sql-server-2008

我在criteria表的记录中保存了标准,我用它来创建一个动态查询字符串,它将查询一个source表,并将该查询的结果插入到destination表中.我的目标是,如果条件与表中的记录匹配,也将criteria表中的id插入表中.如果匹配了多个条件记录,我只需插入第一个条件.destinationsource

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如何做到这一点?

Tho*_*mas 7

您可以在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)