Oracle SQL сравнивает две таблицы данных - PullRequest
0 голосов
/ 09 мая 2018

У меня есть две таблицы A, B в моей базе данных oracle, и я хочу сравнить данные обеих таблиц на основе уникального поля (идентификатор пользователя), но таблица B содержит идентификаторы пользователей как Puserid (P добавляется для всех идентификаторов)

Как использовать условие условия в вышеприведенном случае для двух таблиц для получения данных?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Технически, "P" это с добавлением , без добавления.

Вы можете просто использовать ||:

from a join
     b
     on b.userId = 'P' || a.userId

Это может оказать большое влияние на производительность. Если вы можете, вы должны определить новый столбец в b (возможно, виртуальный столбец). Выше можно использовать индекс на b(userid).

Вы также можете сформулировать это как:

from a join
     b
     on a.userId = substr(b.userId, 2)

И это может использовать индекс для a(userid).

0 голосов
/ 09 мая 2018

Вы можете использовать ltrim:

select a.*, b.*
  from tableA a join tableB b on ( a.userid = ltrim(b.userid,'P') );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...