Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как отобрать текстовые поля где только цифры ?  [new]
alex_rad
Member

Откуда:
Сообщений: 59
Как отобрать текстовые поля где только цифры ?
1 июн 10, 17:44    [8871738]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
NOT LIKE '%[^0-9]%'
1 июн 10, 17:45    [8871768]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
alex_rad
Member

Откуда:
Сообщений: 59
Нужно что-то типа select text_field from data where text_field ТОЛЬКО ЦИФРЫ
1 июн 10, 17:46    [8871782]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
alex_rad
Нужно что-то типа select text_field from data where text_field ТОЛЬКО ЦИФРЫ
Второй раз:
select text_field from data where text_field NOT LIKE '%[^0-9]%';
1 июн 10, 17:49    [8871838]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
alex_rad
Member

Откуда:
Сообщений: 59
iap,

Спасибо громадное. Никогда до этого с этим не сталкивался
1 июн 10, 17:50    [8871863]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
лолл
Guest
alex_rad,

если интересуют не только цифросодержащие поля, но числосодержащие, то можно
select text_field from data where isnumeric(text_field) = 1
1 июн 10, 17:54    [8871931]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
лолл
alex_rad,

если интересуют не только цифросодержащие поля, но числосодержащие, то можно
select text_field from data where isnumeric(text_field) = 1
SELECT '$' WHERE ISNUMERIC('$')=1
и т.д.
1 июн 10, 17:56    [8871962]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
лолл
Guest
хотя, с другой стороны, двойное отрицание по like даст тот же результат
1 июн 10, 17:57    [8871977]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
лолл
Guest
iap,

хм =) мда, неприятная хрень)
1 июн 10, 17:59    [8872000]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
лолл
iap,

хм =) мда, неприятная хрень)
Ну почему сразу "хрень"?
Я тоже раньше так думал, пока не понял, как применить:

https://www.sql.ru/forum/actualthread.aspx?tid=422856#4076052

LIKE пропускает только допустимые символы, а ISNUMERIC следит, чтобы они стояли на допустимых местах
1 июн 10, 20:18    [8872755]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
лолл
Guest
iap,

закавыка в том, что в функцию isnumeric заложены более широкие понятия, чем с первого взгляда ожидается при прямом переводе этого словосочетания, а именно, к примеру, возможность приведения к типу money.
1 июн 10, 20:25    [8872769]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
лолл
iap,

закавыка в том, что в функцию isnumeric заложены более широкие понятия, чем с первого взгляда ожидается при прямом переводе этого словосочетания, а именно, к примеру, возможность приведения к типу money.
Но это описано в документации...
1 июн 10, 20:38    [8872794]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
лолл
Guest
iap,

да, именно
1 июн 10, 20:59    [8872844]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как отобрать текстовые поля где только цифры ?  [new]
jc36
Guest
rlike '^[0-9]*$'
8 дек 17, 13:35    [21018057]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7401
jc36,

озарило через семь лет?
8 дек 17, 13:39    [21018069]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Владислав Колосов
jc36,

озарило через семь лет?
Разве озарило?
По-моему, наоборот.
8 дек 17, 14:05    [21018196]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
jc36
rlike '^[0-9]*$'

Подумал, что за "покемон" такой - RLIKE!?
Погуглил - это из MySQL.
Я уж подумал, jc36 из будущего к нам пришел с благими вестями, ан нет.
8 дек 17, 14:12    [21018233]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать текстовые поля где только цифры ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7401
Руслан Дамирович,

а здесь и возникает вопрос о будущем SQL Server. Спойлеры прорвались!
8 дек 17, 15:31    [21018627]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить