У вас плохой дизайн стола.Вы должны хранить списки как отдельные строки в другой таблице - так называемой таблице «соединения» или «ассоциации».SQL имеет отличный тип данных для хранения списков.Это называется «таблица», а не «строка».
Тем не менее, иногда мы застряли с другими людьми, действительно, очень плохой выбор модели данных.
Если это так, вы можете использоватьreplace()
и trim()
, чтобы получить список, который вы хотите.Я бы сделал:
SELECT trim(replace(replace(' ' || subject || ' ', ' english ', ' '
), ' stat ', ''
), ' ', ' '
) as unmatched
FROM tablename;
Это легко обобщается на большее количество значений, не беспокоясь о введении смежных пробелов.