SQLite: как присоединиться к частичному совпадению столбцов? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь получить все данные из таблицы документов, где список номеров ящиков в таблице BoxNumber находится где-то внутри строки в столбце таблицы документов.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что ни один из примеров кода с '%' + ColumnName + '%' or '%' || ColumnName || '%' не будет работать. он просто вернет либо ничего, либо все данные в таблице документов.

Пример кода:

Возвращает все данные в таблице «Документы» вместо всех данных, содержащих номер документа, аналогичный списку в таблице «BoxNumbers».

SELECT * 
from [Documents]
LEFT JOIN BoxNumbers ON 
BoxNumbers.BoxNum like '%' + Documents.DocNum + '%'

Кто-нибудь знает, почему это не работает? Кажется, что он работает для людей, использующих MySQL и SQL-сервер, так что это просто еще одна особенность SQLite?

1 Ответ

0 голосов
/ 16 ноября 2018

Оператор конкатенации SQLite не +, а ||, поэтому измените его на:

SELECT * 
from [Documents]
INNER JOIN BoxNumbers ON 
BoxNumbers.BoxNum like '%' || Documents.DocNum || '%'

с INNER объединением.

...