У меня есть таблица, содержащая столбец с буквенно-цифровыми значениями, которые хранятся в виде строки. У меня есть несколько значений в этом столбце, имеющие значения, такие как F4737
, 00Y778
, PP0098
, XXYYYZ
т.д.Извлечь буквенно-цифровое значение из столбца varchar
Хочу значений экстракта, начиная с серии F и должны иметь числовые значения в этой строке. Буквенно-цифровая колонка - уникальный столбец, имеющий уникальные значения, но остальные столбцы содержат повторяющиеся значения в моей таблице.
Futhermore, когда эти значения извлекается я хотел бы, чтобы подобрать значение макс из дубликата строки, для например:
Пусть у меня есть F4737
и F4700
как уникальный алфавитно-цифровая строка, то F4737
сусла быть извлеченным из него.
Я написал запрос, как это, но числовые значения не получают извлеченный из этого запроса:
select max(Alplanumeric)
from Customers
where Alplanumeric '%[F0-9]%
или
select max(Alplanumeric)
from Customers
where Alplanumeric like '%[0-9]%'
and Alplanumeric like 'F%'**
я запускаю приведенный выше запрос, но я только получение F, если я удаляю числовую часть из вышеуказанного запроса. Как извлечь как стартовую серию F, так и числовые значения, включенные в эту строку?
Если вы хотите выполнять такие операции, то вы должны сохранить значения в таблице соединений с одной строкой на одного клиента и одной строкой на каждый код. –
'LIKE' не поддерживает регулярные выражения.Вам нужно использовать 'похожее',' ~ 'operator или' regexp_matches() '. Подробнее см. В руководстве: http://www.postgresql.org/docs/current/static/functions-matching.html –
Я не хочу отделять значения в таблице переходов или использовать совпадения регулярных выражений, поскольку это увеличило выполнение запроса , Я попробовал этот запрос: выберите max (CustomerName) от Клиентов, где CustomerName, например «% 4%» и CustomerName, например «F%», этот работает, но только для числового значения 4. Я хотел бы добавить и другие числовые значения в этом запросе , – user1538020