Как использовать специальные символы при объединении таблиц с помощью ilike или как в postgres? - PullRequest
0 голосов
/ 25 мая 2020

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

TABLE1:

col1        col2
NCT03009058 nivolumab (opdivo)  
NCT03009059 pembrolizumab (keytruda)
NCT03009060 zumab
NCT03009061 pembrolizumab-keytruda
TABLE2:

col1    col2      
1   nivolumab
2   opdivo
2   pembrolizumab
3   keytruda
3   zumab
4   pembrolizumab
3   keytruda
5   0.4% lidocaine hydrochloride and 5% dextrose injection

Я хотел бы присоединиться к приведенным выше таблицам в col2, но 'like' и 'ilike' игнорируют строки, в которых есть специальные персонажи. Я хотел бы использовать комбинацию специальных символов при присоединении, например '|; | - | / | (|)' Как я могу достичь результатов ниже?

Желаемый результат:

col1        col2                          col3
NCT03009058 nivolumab (opdivo)        nivolumab 
NCT03009058 nivolumab (opdivo)        opdivo
NCT03009059 pembrolizumab (keytruda)  keytruda
NCT03009059 pembrolizumab (keytruda)  pembrolizumab 
NCT03009060 zumab                     zumab
NCT03009061 pembrolizumab-keytruda    keytruda
NCT03009061 pembrolizumab-keytruda    pembrolizumab

Любые предложения здесь были бы действительно полезны. Спасибо

Ответы [ 2 ]

2 голосов
/ 25 мая 2020

У меня есть что-то близкое с:

select * 
from table1 join table2
on to_tsvector(table1.col2) @@ to_tsquery(table2.col2);
    col1     |           col2           | col1 |     col2      
-------------+--------------------------+------+---------------
 NCT03009058 | nivolumab (opdivo)       |    1 | nivolumab
 NCT03009058 | nivolumab (opdivo)       |    2 | opdivo
 NCT03009059 | pembrolizumab (keytruda) |    3 | pembrolizumab
 NCT03009061 | pembrolizumab-keytruda   |    3 | pembrolizumab
 NCT03009060 | zumab                    |    3 | zumab
 NCT03009059 | pembrolizumab (keytruda) |    3 | keytruda
 NCT03009061 | pembrolizumab-keytruda   |    3 | keytruda
 NCT03009059 | pembrolizumab (keytruda) |    4 | pembrolizumab
 NCT03009061 | pembrolizumab-keytruda   |    4 | pembrolizumab
(9 rows)
0 голосов
/ 26 мая 2020

Итак, я нашел решение этой проблемы .. Вместо использования to_tsquery я использовал plainto_tsquery, и это сработало !!

...