2015-09-15 56 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 
相關問題