根据第三列动态选择两列中的一列

mas*_*coj 5 sql postgresql

我有3个表,让我们说表A,B,C来混淆我的软件:).A和B有两列数字值,表C有一列布尔列.

我想要的是创建一个具有单个列的视图,其中根据C中的列,选择A或B中的值.

例:

输入:

        | A.val |    | B.val |    | C.val |
        ---------    ---------    ---------
entry1  |   1   |    |   6   |    |   T   |
entry2  |   2   |    |   8   |    |   F   |
Run Code Online (Sandbox Code Playgroud)

输出:

       | D |
       -----
entry1 | 1 |
entry2 | 8 |
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法在SQL语句中执行此操作,因为我目前正在以编程方式执行此操作,这会占用不必要的资源.

Jam*_*D77 5

如果你试图选择A如果C = T或B如果C = F那么你可以只使用一个案例陈述

Select (Case When C.val = TRUE Then A.val Else B.Val END) AS D
From Table
Run Code Online (Sandbox Code Playgroud)