2009-08-17 84 views
1

我正在编写一个SSRS报告,该报告将基于同一行中另一个字段的值更改其中一个字段的值。最好的方法是通过SQL来完成吗?基于另一列乘以-1乘以-1

即乘法FieldX(浮点)由-1如果FieldY值与D结束,DA,或“DB”,等等

我最初考虑使用的情况下声明,不论我得到一个今天工作很困难。有任何想法吗? SQL已经使用联合,和和分组。

回答

2

下面是如何在SQL中使用case语句来完成此操作。你总是可以把or分成他们自己的when...then区块,但它也可以这样工作。请享用!

select 
    case 
     when right(FieldY, 1) = 'D' 
      or right(FieldY, 2) = 'DA' 
      or right(FieldY, 2) = 'DB' 
     then FieldX * (-1) 
     else FieldX 
    end as FieldX 
from 
    table 

现在,如果您想知道它是以'D'还是'D?'结尾?哪里?是任何字母,那么:

select 
    case 
     when right(FieldY, 1) = 'D' then FieldX * (-1) 
     when left(right(FieldY, 2), 1) = 'D' then FieldX * (-1) 
     else FieldX 
    end as FieldX 
from 
    table 
+0

谢谢,我用第二个例子。简单,当你知道如何! – Audioillity 2009-08-18 14:22:29