SQL qn: - 案例表达式

时间:2009-10-06 02:47:47

标签: sql case

我在表a中有数据,我想要解冻并创建到另一个表b中。想知道如何做到这一点。我在考虑做嵌套的CASE表达式。但这可行吗?

例如: -

表a: -

S En Eg

-0.2 7888 99 90 9000 788 100 999 888

我想创建另一个表b,这样做: -

选择  情况下S< 0然后(S + 1 / En-Eg)
     ELSE(S-1 / En-Eg))END AS Z. 来自

我还想将Z与其他值进行比较: -

如果z> 0然后'好' 别的'坏'

这样的事情,我也可以在表格b中这样做吗?

1 个答案:

答案 0 :(得分:2)

如果在子查询中执行CASE表达式,则可以“重用”CASE表达式:

SELECT z, CASE WHEN z > 0 THEN 'Good' ELSE 'Bad' END AS zdesc
FROM (
    SELECT CASE WHEN S < 0 
        THEN (S + 1 / En - Eg)
        ELSE (S - 1 / En - Eg) END AS z 
    FROM a
) b