Как я могу получить наибольшее строковое значение, которое можно преобразовать в int с сервера SQL? - PullRequest
2 голосов
/ 02 июля 2010

У меня есть таблица в MS SQL Server 2008 со столбцом varchar под названием WONO. Для большинства записей значение этого поля представляет собой строковое представление с отступом слева, например:

'   384564'

Однако в некоторых случаях в поле присутствует нецелое значение. Я хочу выбрать запись с наибольшим целым числом в столбце WONO, игнорируя те, у которых там нет целого числа. Какое утверждение выбрать для этого?

1 Ответ

1 голос
/ 02 июля 2010
SELECT MAX(cast(WONO as integer)) AS WONO FROM
(
    SELECT WONO 
     FROM YourTable
    WHERE ISNUMERIC(WONO) = 1
) SubTable

Имейте в виду, что это может показаться странным, если у вас есть такие вещи, как 1E1 или 2D2, из-за того, как ISNUMERIC обрабатывает определенные строки (1E1 и 2D2 фактически считаются показателями ISNUMERIC). Если это становится проблемой, вы можете посмотреть на эту пользовательскую функцию, IsReallyNumeric .

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