2009-08-17 69 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