2016-05-15 2 views
0

У меня есть четыре столбца в двух таблицах, например C1, C2, C3 и C4. Теперь каждый из них может иметь любое строковое значение. Я хочу сравнить все столбцы, которые не имеют значения «НЕ ВОЗМОЖНО» из Таблицы 1. Скажем, если C1 и C2 имеют значение «НЕ ВОЗМОЖНО», тогда я сравню C3 и C4 с обеими таблицами.Сравнение столбцов, которые не содержат определенную строку в одной таблице

Это было легко, если бы у нас было две колонки. Но как это сделать с четырьмя столбцами? Любая хорошая идея?

Для двух столбцов, простой случай, как это будет работать:

CASE 
     WHEN t1.C1 = 'NOT POSSIBLE' AND t1.C2 != 'NOT POSSIBLE' 
     THEN t1.C2=t2.C2 
     WHEN t1.C2 = 'NOT POSSIBLE' AND t1.C1 != 'NOT POSSIBLE' 
     THEN t1.C1=t2.C1 
     ELSE 
      t1.C1=t2.C1 AND 
      t1.C2=t2.C2 
end; 

ответ

0

Вы можете использовать (не касается null -значения)

(t1.C1 = 'NOT POSSIBLE' or t1.C1 = t2.C1) and (t1.C2 = 'NOT POSSIBLE' or t1.C2 = t2.C2) 
and (t1.C3 = 'NOT POSSIBLE' or t1.C3 = t2.C3) and (t1.C4 = 'NOT POSSIBLE' or t1.C4 = t2.C4) 
+0

Что делать, если все значения 'НЕВОЗМОЖНО'? – HackAround

+0

Это даст гораздо больше результатов, чем требуется. – HackAround

+0

Вопрос в том, что ДОЛЖНО произойти, когда все значения «невозможно»? Вы не указали это. Вы только что сказали: «Я хочу сравнить все столбцы, которые не имеют значения« НЕ ВОЗМОЖНО »из Таблицы 1.» и он делает именно это. Но я (или вы) может просто добавить другие вещи, если вы скажете мне, какие другие условия требуются, например. вы можете добавить 'и не (t1.C1 = 'НЕ ВОЗМОЖНО' и t1.C2 = 'НЕ ВОЗМОЖНО' и t1.C3 = 'НЕ ВОЗМОЖНО' и t1.C4 = 'НЕ ВОЗМОЖНО')', чтобы предотвратить 4 'невозможно '-значение. – Solarflare

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