1
我正在編寫一個SSRS報告,該報告將基於同一行中另一個字段的值更改其中一個字段的值。最好的方法是通過SQL來完成嗎?基於另一列乘以-1乘以-1
即乘法FieldX
(浮點)由-1
如果FieldY
值與D
結束,DA
,或「DB」,等等
我最初考慮使用的情況下聲明,不論我得到一個今天工作很困難。有任何想法嗎? SQL已經使用聯合,和和分組。
我正在編寫一個SSRS報告,該報告將基於同一行中另一個字段的值更改其中一個字段的值。最好的方法是通過SQL來完成嗎?基於另一列乘以-1乘以-1
即乘法FieldX
(浮點)由-1
如果FieldY
值與D
結束,DA
,或「DB」,等等
我最初考慮使用的情況下聲明,不論我得到一個今天工作很困難。有任何想法嗎? SQL已經使用聯合,和和分組。
下面是如何在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
謝謝,我用第二個例子。簡單,當你知道如何! – Audioillity 2009-08-18 14:22:29