2016-10-05 3 views
0

У меня есть эта таблица, и я хотел бы иметь оператор выбора, который выбирает VALUE на основе заданного кода. Может потребоваться утверждение CASE, но все примеры, на которые я смотрел до сих пор, имели разные значения в результате дела.CASE в операторах SELECT

СТОЛ

ID  || VALUE 
1  || value1 
2  || value2 
3  || value3 
4  || value4 
5  || value5 
6  || value3 
7  || value2 
8  || value8 

ТАБЛИЦА B

ID   ||CODE 
1   ||1  
2   ||2  
3   ||3  
4   ||4  
5   ||1  
6   ||2  
7   ||3  
8   ||4  


SELECT B.CODE, 
     CASE 
      WHEN B.CODE = '01' THEN A.value based on code 
      WHEN B.CODE = '02' THEN A.value based on code 
      WHEN B.CODE = '03' THEN A.value based on code 
      WHEN B.CODE = '04' THEN A.value based on code 
      END AS VALUE_OUT 
      FROM A JOIN B 
       ON A.ID = B.ID; 
+2

Под «таблицей» вы имеете в виду фактическую таблицу базы данных или гипотетическую таблицу? Какую ценность должна отображать карта? значение1 или значение5? –

+0

1 можно сопоставить оба значения. Это гипотетическая таблица, но у меня есть аналогичная таблица базы данных с несколькими миллионами записей. Есть в основном 4 кода, которые могут отображаться в поля VALUE. –

+0

Вы хотите, чтобы вы видели все отдельные пары CODE/VALUE в таблице миллионов записей? –

ответ

1

Вы можете просто нужен пункт WHERE

Select Value 
From MyTable 
Where Code = 1 

EDIT

Похоже, что INNER JOIN может быть достаточно:

SELECT B.Code, A.Value as Value_Out 
From A 
Inner Join B 
    On A.ID = B.Code 
+0

Это помогло бы, если бы у меня было всего 10-15 записей, но на самом деле у меня есть пара миллионов рецензий для применения CASE. –

+0

INNER JOIN будет давать значение A.VALUE независимо. Однако мне нужно это значение на основе B.CODE, поскольку VALUE_OUT будет использоваться в разных таблицах на основе кода и идентификатора, которому он принадлежит. –

0

Я думаю, что вы хотите просто

SELECT DISTINCT 
code, value 
FROM MyTable 

или

SELECT DISTINCT 
value 
FROM MyTable 
WHERE code = 1 

Если вы хотите, чтобы все значения для определенного кода.

Смежные вопросы