Я пытаюсь написать лексическую базу данных для хранения слов, состоящих из корней и паттернов, и мне было интересно, как я могу создать столбец, который будет комбинировать корень и шаблон для меня, игнорируя строки, которые не имеют столбцы запроса SELECT
.
В принципе, у меня есть этот результат из базы данных PostgreSQL:
SELECT root, root_i FROM tbl_roots NATURAL JOIN tbl_patterns NATURAL JOIN tbl_patterns_triliteral;
root | root_i
---------+--------
{s,ş,m} | 1u2u3a
{p,l,t} | 1u2u3a
{t,m,s} | 1u2u3a
{n,t,l} | 1u2u3a
{s,ş,m} | 1a2oi3
{p,l,t} | 1a2oi3
{t,m,s} | 1a2oi3
{n,t,l} | 1a2oi3
{s,ş,m} | 1o2i3
{p,l,t} | 1o2i3
{t,m,s} | 1o2i3
{n,t,l} | 1o2i3
{s,ş,m} | a12e3
{p,l,t} | a12e3
{t,m,s} | a12e3
{n,t,l} | a12e3
{s,ş,m} | 1u2á3
{p,l,t} | 1u2á3
{t,m,s} | 1u2á3
{n,t,l} | 1u2á3
{s,ş,m} |
{p,l,t} |
{t,m,s} |
{n,t,l} |
{s,ş,m} | 1e2é3
{p,l,t} | 1e2é3
{t,m,s} | 1e2é3
{n,t,l} | 1e2é3
{s,ş,m} |
{p,l,t} |
{t,m,s} |
{n,t,l} |
{s,ş,m} |
{p,l,t} |
{t,m,s} |
{n,t,l} |
{s,ş,m} |
{p,l,t} |
{t,m,s} |
{n,t,l} |
И я хочу преобразовать его на лету во что-то похожее на это:
root | root_i | word_i
---------+--------+--------
{s,ş,m} | 1u2u3a | suşuma
{p,l,t} | 1u2u3a | puluta
{t,m,s} | 1u2u3a | tumusa
{n,t,l} | 1u2u3a | nutula
{s,ş,m} | 1a2oi3 | saşoim
{p,l,t} | 1a2oi3 | paloit
{t,m,s} | 1a2oi3 | tamois
{n,t,l} | 1a2oi3 | natoil
{s,ş,m} | 1o2i3 | soşim
{p,l,t} | 1o2i3 | polit
{t,m,s} | 1o2i3 | tomis
{n,t,l} | 1o2i3 | notil
{s,ş,m} | a12e3 | asşem
{p,l,t} | a12e3 | aplet
{t,m,s} | a12e3 | atmes
{n,t,l} | a12e3 | antel
{s,ş,m} | 1u2á3 | suşám
{p,l,t} | 1u2á3 | pulát
{t,m,s} | 1u2á3 | tumás
{n,t,l} | 1u2á3 | nutál
{s,ş,m} | 1e2é3 | seşém
{p,l,t} | 1e2é3 | pelét
{t,m,s} | 1e2é3 | temés
{n,t,l} | 1e2é3 | neşél
Если столбец word
динамически генерируется путем замены цифр в столбце root_i
символом в индексе цифр в столбце root
. Мне также нужно отбросить запрошенные строки, которые не имеют записи в обоих столбцах, чтобы уменьшить беспорядок в моем выходе.
Может ли кто-нибудь помочь мне создать функцию postgres, которая будет выполнять слияние символов [] и текстовых строк? Немного регулярного выражения, которое мне нужно, не должно быть сложным, но я понятия не имею, как смешивать это с запросом или, еще лучше, превратить его в функцию.