как я могу объединить две таблицы в одном столбце, когда один столбец имеет несколько кодов - PullRequest
1 голос
/ 13 мая 2019

У меня есть две таблицы:

Table1

    atypcode |  ABRNCHCOD   |   tarikh       |  codel
    1523     |   375        |    1397/06/31  |  375-500-652278-2,375-500-652278-3
    2179     |   344        |    1397/06/31  |  344-800-909999-1,344-800-909999-2
    2175     |   344        |    1397/06/31  |  344-500-1885840-1,344-500-1885840-2
    1523     |   375        |    1397/06/31  |  375-500-2852450-1,375-500-2852450-4
    1523     |   375        |    1397/06/31  |  375-500-651108-1,375-500-651108-2,375-500-651108-3
    4901     |   154        |    1397/06/31  |  154-305-260752-1,154-200-260752-1,154-800-13557-1
    2175     |   344        |    1397/06/31  |  344-500-1075560-1,344-500-1075560-2
    3312     |   344        |    1397/06/31  |  344-500-1885840-1,344-500-1885840-2

Table2

tarikh      |   codel               |    mande
1397/06/31  |   115-112-1882936-1   |    2798089.00
1397/06/31  |   115-112-1974907-1   |    72580645.00
1397/06/31  |   115-112-1974907-2   |    19052419.00
1397/06/31  |   115-112-2431483-1   |    0.00
1397/06/31  |   115-112-2472323-1   |    2643835.00
1397/06/31  |   115-112-2559539-1   |    1344235.00
1397/06/31  |   115-112-2807485-1   |    113614.00
1397/06/31  |   115-512-2556810-1   |    0.00
1397/06/31  |   115-512-2986840-1   |    130000000.00
1397/06/31  |   115-512-570205-1    |    0.00

и в table1 простоодин кодел существует в таблице 2, как я могу искать в таблице 2 в таблице 1 на основе кода без "в".

спасибо

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Кажется, что ни один из кодов во второй таблице не соответствует первой таблице, а также вам не следует хранить CSV-данные, подобные этой. При этом мы можем попробовать следующий трюк:

SELECT t2.tarikh, t2.codel, t2.mande
FROM table2 t2
WHERE EXISTS (SELECT 1 FROM table1 t1
              WHERE ',' + t1.codel + ',' LIKE '%,' + t2.codel + ',%');

Чтобы увидеть, как это работает, рассмотрим таблицу 1 codel значение:

375-500-651108-1,375-500-651108-2,375-500-651108-3

Сначала мы окружаем это значение с обеих сторон запятой, чтобы дать:

,375-500-651108-1,375-500-651108-2,375-500-651108-3,

Тогда нам просто нужно найти заданное значение codel из таблицы 2, также окруженное запятыми, по этой строке, например. поиск ,375-500-651108-1,.

0 голосов
/ 13 мая 2019

https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017

Попробуйте использовать функцию разделения строк и использовать ее в своем соединении. Пожалуйста, разделите его в предложении Select и используйте Alias.

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