Мелкий алфавит в номере в SQL - PullRequest
0 голосов
/ 12 января 2011

У меня есть такая таблица:

CREATE TABLE [Mytable](
    [Name] [varchar](10),
    [number] [nvarchar](100) )

Я хочу найти [число] с символом алфавита?

данные должны быть отформатированы следующим образом:

Name | number
---------------
Jack | 2131546
Ali  | 2132132154

но какое-то время вставляется номер, и в нем есть алфавитный символ, а другой нет числового символа, например:

Name | number
---------------
Jack | 2[[[131546ddfd
Ali  | 2132*&^1ASEF32154

Я хочу найти эту информированную строку.Я не могу использовать «Мне нравится», потому что «Мне нравится» делает мой запрос очень медленным.

Ответы [ 2 ]

5 голосов
/ 12 января 2011

Обновлено, чтобы найти все нечисловые символы

select * from Mytable where number like '%[^0-9]%'

Что касается комментариев по производительности, возможно, использование clr и regex немного ускорит процесс, но основная часть затрат на этот запрос будет равналогические чтения.

0 голосов
/ 12 января 2011

Немного за пределами коробки, но вы можете сделать что-то вроде:

  1. массовое копирование данных из таблицы в плоский файл
  2. создайте таблицу, которая имеет ту же структуру, что и исходная таблица, но с правильным числовым типом (например, int) для столбца [число].
  3. массовое копирование данных в эту новую таблицу, указав размер пакета 1 и файл ошибок (куда попадут строки, не соответствующие схеме)
  4. строк, которые заканчиваются в файле ошибок, являются строками с нечисловыми значениями в столбце [число]

Конечно, вы можете сделать то же самое с курсором и временной таблицей или двумя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...