SQL JOIN ON (с двумя условиями) - PullRequest
0 голосов
/ 18 октября 2018

Я хочу знать, возможно ли написать команду SQL ORACLE, объединяющую две таблицы с двумя CASE WHEN в условии on ();Я попробовал этот путь;но это не сработало

SELECT *
FROM A  a
   LEFT OUTER JOIN B b
       ON ((CASE
                WHEN LENGTH (a.xxx) = 3
                THEN a.xxx
                WHEN LENGTH (a.yyy) = 2
                THEN TO_CHAR (a.xxx || TRUNC (a.zzz, 'YY'))
            END) **=**
           (CASE
                WHEN LENGTH (a.xxx) = 3 THEN b.wert
                WHEN LENGTH (a.xxx) = 2 THEN b.bez
            END));

1 Ответ

0 голосов
/ 18 октября 2018

Это логика, которую вы хотите?

on (length(a.xxx) = 3 and a.xxx = b.wert) or
   (length(a.xxx) = 2 and (a.xxx || TRUNC(a.zzz, 'YY')) = b.bez) 

case выражения обычно не нужны для логических выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...