powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объясните логику работы функции isnumeric
9 сообщений из 9, страница 1 из 1
Объясните логику работы функции isnumeric
    #39784767
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select isnumeric('\'), isnumeric('/')


(No column name)(No column name)10

если .,+- и знаки валют я еще как-то понимаю, то backslash тут каким боком?
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784776
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

в данном случае это спец символ переноса строки
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784777
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select isnumeric('\1'), isnumeric('/'),try_CAST('\' as numeric),\ as ddd

Да, интересно
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784778
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRY_PARSE более новая функция и ИМХО её правильнее использовать
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784785
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorbackslash тут каким боком?Он совпадает с символом йены в какой-то из японских кодировок.
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784795
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

точно, причем cast('\' as money) - ok, а cast('\' as numeric) - error
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39784831
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmShIgorbackslash тут каким боком?Он совпадает с символом йены в какой-то из японских кодировок.
да
авторSo in code page 932, 0x5c (YEN SIGN) has to have a round trip mapping to U+005c (REVERSE SOLIDUS), with a mere best fit mapping to U+00a5 (YEN SIGN).

And in code page 949, 0x5c (WON SIGN) has to have a round trip mapping to U+005c (REVERSE SOLIDUS), with a mere best fit mapping to U+20a9 (WON SIGN).
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39785326
bozarland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgorinvm,

точно, причем cast('\' as money) - ok, а cast('\' as numeric) - error

а так

select isnumeric('5.91643E7')

select cast('5.91643E7' as numeric)
select cast('5.91643E7' as money)

и только так работает
select cast('5.91643E7' as float)
...
Рейтинг: 0 / 0
Объясните логику работы функции isnumeric
    #39785351
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorinvm,

точно, причем cast('\' as money) - ok, а cast('\' as numeric) - errorВ документации же сказано, что ISNUMERIC() возвращает 1, если возможно преобразование хотя бы в какой-нибудь числовой тип.
В то же время числовые типы MONEY, FLOAT допускают свои специфические символы, которые не дают
преобразовать в другие числовые типы, например, INT, которые могут содержать только цифры, минус, плюс да лидирующие пробелы.
Поэтому обычно проверять конвертируемость строкового представления в числовой тип только функцией ISNUMERIC() недостаточно.
Надо ещё проверить отсутствие недопустимых символов.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Объясните логику работы функции isnumeric
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]