Как выбрать все строки, в которых поле varchar содержит нецифровые символы? - PullRequest
1 голос
/ 20 мая 2009

Я хочу найти все экземпляры в таблице, где строковое поле не может быть преобразовано как число. Есть ли способ сделать как "try" в t-sql, чтобы я мог получить все идентификаторы, где произошел сбой, и удалить значение?

Ответы [ 2 ]

4 голосов
/ 20 мая 2009
select *
from yourTable
Where ISNUMERIC(yourField) = 0
1 голос
/ 20 мая 2009

Я не пользователь t-SQL, поэтому, пожалуйста, примите это как отказ от ответственности. Извините, если это не идеальный ответ на ваш вопрос, но я использую MySQL, который может использовать регулярные выражения. Теперь, в зависимости от того, что вы на самом деле хотите сделать ... это может быть не ваше окончательное решение, но вот краткий пример запроса, который я мог бы выполнить:

SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$' 

Но опять же не уверен, что t-sql может это сделать, но по этой ссылке: http://www.sqlteam.com/article/regular-expressions-in-t-sql похоже, что так и есть. Надеюсь, это по крайней мере начало вашего решения.

Опять же, я не совсем уверен, каково ваше конечное использование ... но если бы мне нужны были только цифры, я бы использовал какую-то очистку перед загрузкой данных в базу данных, а не очистку после нее ... Я всегда нахожу этот путь проще. (Возможно, вы начали с ранее существовавших данных)

Надеюсь, это поможет!

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