基于第三列动态选择其中一个列

7

我有三个表,我们称之为A、B、C来使我的软件更加难以理解。 A和B都有两列数值,而C表有一个布尔类型的列。

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

例如:

输入:

        | A.val |    | B.val |    | C.val |
        ---------    ---------    ---------
entry1  |   1   |    |   6   |    |   T   |
entry2  |   2   |    |   8   |    |   F   |

输出:

       | D |
       -----
entry1 | 1 |
entry2 | 8 |

我在想是否有一种在SQL语句中完成此操作的方法,因为我目前是通过编程方式实现,这会消耗不必要的资源。


你应该展示表结构并提及这些表中的键。 - Vamsi Prabhala
这可能有帮助:https://dev59.com/p2Mm5IYBdhLWcg3wduxV - Robert
vkp,键是“entry1”和“entry2”。可能可以更清楚地表达。 - mascoj
2个回答

7
如果您希望在C = T时选择A,或在C = F时选择B,则可以使用Case语句。
Select (Case When C.val = TRUE Then A.val Else B.Val END) AS D
From Table

谢谢!非常好用。不知道我怎么会忽略了“CASE”的存在。 - mascoj

0
你可以使用 CASE 语法来实现这个。
SELECT CASE WHEN C.val = 'T' THEN A.val ELSE B.val END as yourField

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接