#sql #oracle #inner-join #sql-like
#sql #Oracle #внутреннее соединение #sql-подобный
Вопрос:
В базе данных Oracle у меня есть 1 столбец таблицы db1, который содержит известное значение1, например: 4649843545945894537, и в этой базе данных есть еще 2-я таблица DB, которая содержит столбец со значением 1-й таблицы DB плюс 1 случайная цифра, которая является полным значением (value2) для этого числа ионо уникально. Например, полное значение2 2-й таблицы: 4649843545945894537 4 Итак, используя SQL, мне нужно найти полное значение2 числа во 2-й таблице, выбрав известное значение1 из 1-й таблицы и используя «like», чтобы найти полное уникальное значение2 во 2-й таблице. Итак, нужно, чтобы SQL был чем-то вроде (псевдокод / SQL):
select value2 from table2 where value2 like '$(value1)%';
Итак, в нашем примере, должно быть переведено в следующее:
select value2 from table2 where value2 like '4649843545945894537%';
которое должно возвращать для значения2 4649843545945894537 4
Надеюсь, это понятно, что мне нужно.
Спасибо.
Ответ №1:
Кажется, вы хотите join
:
select t1.value1, t2.value2
from t1
inner join t2 on t2.value2 like t1.value1 || '_'
Это позволяет использовать только один дополнительный символ в конце value2
.
Предполагается, что ваши значения являются строками. Если вместо этого у вас есть числа, я бы рекомендовал арифметику:
select t1.value1, t2.value2
from t1
inner join t2 on floor(t2.value2/10) = t1.value1