2016-02-23 3 views
1

У меня есть две таблицы, одна с частичными почтовыми индексами в Великобритании и одна с полными британскими почтовыми индексами. Мне нужно вернуть эти строки в пределах полных почтовых индексов, которые соответствуют частичным почтовым индексам. Пожалуйста, вы можете посоветовать код, чтобы сделать это, поскольку я сбиваю с толку.SQL запрос на поиск почтового индекса

Вот пример таблиц:

Table1 

    Postcode 
    AB10 1 


    Table2 

    Postcode Title FName SName 
    AB10 1NN Ms Davina Gabriel 
    AB11 5BY Mr James Mclean 
    AB11 5DL Mrs Janet Maccallum 
    AB11 5DP Mr Mick Milne 
    AB11 5DY Mr Trevor Mcwhinnie 
    AB10 1GJ Mrs Ruth Smith 

В приведенном выше примере я просто искал Ms Davina Габриэль и Рут Смит возвращается.

+0

Tag используемой СУБД. У вас уже есть один ответ на конкретный продукт. Надеюсь, для ваших dbms ... – jarlh

ответ

1

Попробуйте это ...

select a.* from table2 a, table1 b where a.postalcode like b.postalcode + '%' 
1

Как насчет ...

SELECT * 
FROM Table2 
INNER JOIN Table1 ON (Table2.Postcode LIKE CONCAT(Table1.Postcode, '%')) 
+0

'CONCAT' относится к конкретным продуктам, и никакие dbms не помечены. ANSI SQL имеет '||'. – jarlh

+0

Получение этого сообщения об ошибке: Msg 195, уровень 15, состояние 10, строка 4 «CONCAT» не является признанным встроенным именем функции. –

+0

Я использую sql server 2008 r2 - извините, я должен был упомянуть об этом раньше. –

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