Запрос ниже
INSERT INTO temp
SELECT esd,
'E'
FROM test_data_sovlp
WHERE esd IS NOT NULL
UNION ALL
SELECT td,
CASE is_db
WHEN 0 THEN 'S'
WHEN 1 THEN 'H'
END AS FLAG
FROM test_data_sovlp
WHERE td IS NOT NULL
возвращает следующие данные:
|----------|----------|
| DT | FLAG |
|----------|----------|
| 10 | E |
| 20 | H |
| 30 | E |
| 40 | E |
| 50 | E |
| 60 | S |
| 70 | H |
| 75 | E |
| 80 | H |
| 100 | H |
|----------|----------|
при запуске с этой таблицей:
|----------|----------|----------|----------|----------|
| ID | ESD | TD | IS_DB | TEST_SET |
|----------|----------|----------|----------|----------|
| 1 | 10 | 20 | 1 | 2 |
| 2 | 30 | (null) | 1 | 2 |
| 3 | 40 | (null) | 1 | 2 |
| 4 | 50 | 60 | 0 | 2 |
| 5 | (null) | 70 | 1 | 2 |
| 6 | 75 | 100 | 1 | 2 |
| 7 | (null) | 80 | 1 | 2 |
|----------|----------|----------|----------|----------|
Примечание : см. Демо здесь или мой предыдущий пост здесь для получения более подробной информации.
Что меня интересует, так это объединение FLAG
значение, возвращаемое запросом выше, в порядке DT
.
Таким образом, для запроса выше значение конкатенации (назовем это q_result
): q_result = EHEEESEHH
.
Я хочу затем проанализировать q_result
с помощью блока из 2 символов, чтобы обнаружить возможное присутствие любой из следующих последовательностей:
HH EE HS SE
Во время анализа, если шаблон соответствует где-либо в q_result
,процедура, которую я хотел бы написать, должна возвращать 0
.Если шаблон не соответствует, то процедура должна вернуть 1
.
Вопрос
Как это можно сделать?