Значение формата c для поиска в поле базы данных - PullRequest
0 голосов
/ 27 мая 2020

Мне нужно искать определенные значения формата c в поле базы данных. Формат значения, как показано ниже:

ABC 1167:YYYY
ABC 45870:YYYY
ABC 7654:YYYY
ABC 45076:YYYY

YYYY - может быть год, т.е. 2018, 2019

Я пытался использовать функцию Format(), а также пытался использовать RegEX, но не получается результаты как и ожидалось. Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Здесь я предполагаю, что как минимум 4 цифры будут следовать за AB C и опубликуют цифры, которые у вас будут :, а затем годы '2018' или '2019'

DECLARE @table TABLE(charValue VARCHAR(100));
INSERT INTO @table VALUES
('ABC 1167:2018'),
('ABC 45870:2019'),
('ABC 7654:2018'),
('ABC 45076:2019');

SELECT * FROM @table
WHERE charValue LIKE 'ABC [0-9][0-9][0-9]%:201[8-9]'
+----------------+
|   charValue    |
+----------------+
| ABC 1167:2018  |
| ABC 45870:2019 |
| ABC 7654:2018  |
| ABC 45076:2019 |
+----------------+
0 голосов
/ 27 мая 2020

Предполагая, что вы ожидаете только 20xx лет, вы можете попробовать:

SELECT *
FROM yourTable
WHERE col LIKE '[0-9][0-9][0-9][0-9]:20[0-9][0-9]';
...