Есть ли способ, чтобы выбрать только те поля, которые соответствуют следующим критериям из определенного столбца в MySQL:Выберите только значение Length & Формат - MySQL
Максимальная длина = 9 Первые 3 символа должны быть HSA Последние 6 символов должен быть только INT . 6 цифр должны начинаться с 0 ... Это может измениться позже, чтобы начать с 1/2 и т. д.
В приведенной ниже таблице показаны основные схемы и возможные значения полей.
row | visit_date | field_value
----+------------+---------------
1 |2016-12-07 |HSA023456
2 |2016-12-08 |HSA059870
3 |2016-12-06 |225981450
4 |2016-12-05 |HSAB02354
5 |2016-12-13 |HSA0234567
6 |2016-12-14 |HSA
7 |2016-12-14 |HSA0987
8 |2016-12-16 |1234HSA00
Строки 1 - 3 являются допустимыми строками и должны быть возвращены.
Строки 4 - 8 являются недопустимыми строками и должны быть игонированными.
Я попытался ниже, хотя это не дает правильный результат, как это только обеспечить частичное решение:
, CASE
WHEN CHAR_LENGTH(NFB.field_value) > 8 AND NFB.field_value LIKE 'HSA%' THEN UPPER(NFB.field_value)
WHEN CHAR_LENGTH(NFB.field_value) < 9 AND NFB.field_value LIKE 'HSA%' THEN CONCAT(UPPER(NFB.field_value),'VALIDATE')
ELSE "" END FIELD_VALUE
Благодарности
Пожалуйста, добавьте некоторые схемы SQL, некоторые фиктивные данные, что вы уже пробовали и некоторые результаты образца ваших желаемые вывод. –
Да, попробуй это для себя. И, возможно, взгляните на темное искусство регулярных выражений. – Strawberry
Первые 4 являются «HSA0», правильно? – Strawberry