为同一列中的两个输出值评估相同的条件

时间:2018-03-20 10:44:52

标签: sql-server

如何评估两种不同输出的相同条件。 例如:

select case
          when 1 = 1 and 2 = 2 then 'one'
          when 1 = 1 and 2 = 2 then 'Two'
       end

如何使此语句执行两次。 其余列具有相同的数据。 我尝试了几种但没有运气。 谢谢。

1 个答案:

答案 0 :(得分:1)

据我了解,您希望一次使用复杂条件 -

您可以将结果存储在OUTER APPLY(或CROSS APPLY)字段

中来实现此目的

像这样:

select case when condition.is_true = 1
            then 'one'
            else null
       end as one,
       case when condition.is_true = 1
            then 'two'
            else null
       end as two
from table_name
outer apply
(
    select case when 1 = 1 and 2 = 2
                then 1
                else 0
           end as is_true
)condition