Подтвердите NVARCHAR для 6 цифр и запятой - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть NVARCHAR, который выглядит так: «123456,789123,345678». Я хочу проверить это только для 6 цифр и запятой и выдать ошибку, если что-то еще (например, 123E45,12345,1234 недопустимо).

У меня есть SQL Server 2008 для всех тех, кто хочет использовать STRING_SPLIT.

1 Ответ

0 голосов
/ 08 ноября 2019

Это ужасный способ хранения значений. Но позвольте мне предположить, что у вас нет выбора.

Вы можете использовать метод грубой силы, с отдельным like до максимального числа повторяющихся чисел:

where not (',' + col like replicate(',[0-9][0-9][0-9][0-9][0-9][0-9]', 1) or
           ',' + col like replicate(',[0-9][0-9][0-9][0-9][0-9][0-9]', 2) or
           ',' + col like replicate(',[0-9][0-9][0-9][0-9][0-9][0-9]', 3) or
           ',' + col like replicate(',[0-9][0-9][0-9][0-9][0-9][0-9]', 4) or
           ',' + col like replicate(',[0-9][0-9][0-9][0-9][0-9][0-9]', 5) 
           )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...