2015-09-15 8 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 оператора (ов), так как я в настоящее время делает это программно, что поглощает ненужные ресурсы.

+0

вы должны показать структуру таблицы и указать ключи в эти таблицы –

+0

Это может помочь: http://stackoverflow.com/questions/17598350/select-value-if-condition-in-sql-server – Robert

+0

vkp, ключи «entry1», «entry2». Наверное, возможно, это было более ясно. – mascoj

ответ

5

Если вы пытаетесь выбрать A, если 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 
Смежные вопросы