извлечение строки sql - PullRequest
       8

извлечение строки sql

1 голос
/ 01 августа 2011

У меня есть столбец в SQL Server 2008, который является varchar (255).Столбец полон «измерений» и насчитывает около 15 000 записей.Поскольку столбец имеет тип string и был введен человеком вручную, он стал грязным, например

  • 100x200cm
  • 200x400mm
  • 3 "на 9"
  • 30 x 20
  • 12 см в длину

В основном мне нужно извлечь все измерения (которые я могу) в пригодные размеры и сохранить каждую единицу в новый столбец (высота / ширина)/depth).

Кто-нибудь может предложить лучший способ сделать это?

Я смотрел на регулярное выражение, но не уверен в том, как лучше двигаться вперед

1 Ответ

1 голос
/ 01 августа 2011

Я рекомендую очень строгий синтаксический анализатор, который генерирует исключение всякий раз, когда он сталкивается с чем-то, что он не может обработать явно. Таким образом вы избавитесь от неожиданностей.

Прежде всего, вы должны использовать для этого язык сценариев.

Извлекает записи и перебирает их, и для каждой записи вы пытаетесь их проанализировать:

  • ^([1-9][0-9]*)x([1-9][0-9]*)([a-z]+)$ - если он совпадает, вы сопоставляете $3 со списком действительных единиц, например, «см», «мм», «м» и т. Д.

  • ^([1-9][0-9]*)([^ ]+) by ([1-9][0-9]*)(.+)$ - если он совпадает, сравнить единицы в матче $2 и $4. Снова сопоставьте их со списком действительных единиц, и, если они успешны, но они не совпадают, конвертируйте одну в другую.

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

...