В моем офисе одна из таблиц, которые мы используем, отслеживает наши номера заказов. Проблема в том, что сотрудники не вводят число последовательно в поле базы данных.
Некоторые из примеров приведены:SQL Выбор и возврат данных на основе шаблона
'7-26-13 543006-27031', '345009-27031', 'KWYD-863009-27031'.
Мне нужно найти способ, чтобы вернуть только «Nnnnnn-NNNNN» подстроку независимо от того, где в поле оно. В большинстве случаев этот шаблон находится в конце поля, но это не всегда так. Я уже ограничил записи данных только теми, у кого этот шаблон, используя выражение LIKE в моем предложении WHERE, но я не знаю, как лучше всего вернуть именно этот шаблон в виде столбца.
Edit:
Мы до сих пор с помощью SQL Server 2000
Что я ищу сделать это по линии:
SELECT SUBSTRING(VendorOrderNo, ??, 12) AS OrderNo
FROM Orders
WHERE VendorOrderNo LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9]%'
Вам нужно добавить тег указать, какие базы данных вы используете и некоторые выборочные данные, иллюстрирующие возможные входы и их правильный выход поможет. –
Похоже, вам нужен оператор CASE, но, как писал Алекс, вам нужно привести примеры, чтобы получить ответ – twoleggedhorse
Я согласен с Alex и TwoLegs. Если это в конечном итоге будет частью инструкции UPDATE, предназначенной для исправления ошибочного ввода данных, вы также можете предоставить некоторую информацию в этом отношении. – mikeY