Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема T-SQL (число прочтений - 2796 )
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
T-SQL
24. Марта 2008 :: 16:04
Печать  
Есть реквизит документа - строка 10 символов.
Она должна содержать только цифры.
Подскажите, пожалуйста как в запросе проверить что в строке нет других символов
кроме цифр ?

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

Как это сделать чтоб быстрей работало ?
Спасибо, за советы.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: T-SQL
Ответ #1 - 24. Марта 2008 :: 17:36
Печать  
Кроме функции что-то ничего не приходит Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: T-SQL
Ответ #2 - 24. Марта 2008 :: 20:02
Печать  
Есть стандартная функция ?
Скорее всего я не понял иронии.

А как описать фукнцию и вызывать ее в T-SQL ?
Есть ссылки где можно посмотреть ?

И еще, может кто подскажит оптимальный алгоритм решения,например,
первой задачи ? Нужно провить что символьная строка содержит только цифры.

Можно преобразовать строку в число и обратно и сравнить с исходной строкой.
Но если там будут буквы, SQL выдаст ошибку и эту ошибку никак не обработаешь.
Можно в цикле брать каждый символ строки и проверять его на в хождение в строку
'АаБбВв.....', но это как то долго.

Спасибо всем кто откликнется.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: T-SQL
Ответ #3 - 24. Марта 2008 :: 21:01
Печать  
Например
10 условий вида
(SUBSTRING(RerStr, i, 1) BETWEEN '0' AND '9')

Если длина реквизита неизвестна - можно написать пользовательскую функцию
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: T-SQL
Ответ #4 - 25. Марта 2008 :: 03:12
Печать  
Ты бы с этим вопросом на SQL.ru сходил.
  
Наверх
ICQ  
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: T-SQL
Ответ #5 - 25. Марта 2008 :: 04:38
Печать  
Зачем такие вещи отдавать для мучений серверу? Ими клиент заниматься должен.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: T-SQL
Ответ #6 - 25. Марта 2008 :: 16:18
Печать  
SELECT НомерДокумента from ТвояТаблица where НомерДокумента not like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'


1. Это перебор всей таблицы. Если у тебя табличка на несколько миллионов записей, то сам понимаешь.
2. Сработает при условии, что заняты все десять цифр, нет пробелов.
  
Наверх
 
IP записан
 
bidler
Junior Member
**
Отсутствует



Сообщений: 68
Зарегистрирован: 06. Октября 2006
Re: T-SQL
Ответ #7 - 25. Марта 2008 :: 20:11
Печать  
Прошу прощения, на работе инет,временно, отрубили могу заходить
только дома вечером.
Не понял на счет клиента.
Мне нужно у 150 тыс. доков (это за один год, всего 3 года) проверить корректность
заполнения ряда реквизитов.
Не буду же я вытаскивать все 150 тыс. на клиента и там проверять реквизиты.
Или я неправильно понял ?

За идеи спасибо.
А на SQL.RU тоже схожу, поищу может кто то делал что то подобное.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: T-SQL
Ответ #8 - 25. Марта 2008 :: 22:01
Печать  
Уже бы потихонечку и проверил бы...
Вставляй скорее проверку при записи... пока не стало 300 тыс.
Вот кстати для чисел штатными ср-вами  Подмигивание
http://infostart.ru/profile/2140/blogs/201/
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать