2015-09-15 57 views
3

我有3个表,可以说表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语句(s)在这一点,因为我目前正在以编程方式进行,从而消耗不必要的资源。

+0

你应该表现出的表结构和提钥匙,这些表 –

+0

这可能有所帮助:http://stackoverflow.com/questions/17598350/select-value-if-condition-in-sql-server – Robert

+0

vkp,关键是“entry1”,“entry2”。大概可以让这个更清楚。 – mascoj

回答

5

如果你想选择一个如果C = T或B如果C = F,那么你可以只使用一个case语句

Select (Case When C.val = TRUE Then A.val Else B.Val END) AS D 
From Table 
+0

谢谢!很棒。不知道我是如何浏览'CASE'的存在的, – mascoj

0

您可以使用CASE语法。

SELECT CASE WHEN C.val = 'T' THEN A.val ELSE B.val END as yourField 
相关问题