基于另一列将列乘以-1

时间:2009-08-17 22:11:18

标签: sql sql-server sql-server-2005 reporting-services

我正在编写一份SSRS报告,该报告将根据同一行中另一个字段的值更改其中一个字段的值。最好的方法是通过SQL吗?

如果FieldX的值以-1FieldY或'DB'等结尾,则

ie- D(浮动)乘以DA

我最初在考虑使用案例陈述,但今天我的工作有点困难。有任何想法吗? SQL已经使用了union,sums和grouping。

1 个答案:

答案 0 :(得分:2)

以下是使用case语句在SQL中执行此操作的方法。您始终可以将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