Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проверка на integer в Transact-SQL  (Прочитано 12999 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dread Knight
Гость
« : 19-09-2004 23:38 » 

Как проверить, содержит ли строка целое число? не float или еще что, а именно целое? Причем так, чтобы не возникла ошибка, т.е чтобы ASP.NET не выкидывал на страницу Syntax error converting the varchar value 'абракадабра' to a column of data type int[/b]
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #1 : 20-09-2004 05:29 » 

Dread Knight, ошибка происходит при попытке записи в БД? Если да, хотелось бы увидеть скрипт, которым ты это делаешь.
А если абстрактно, то я бы попытался перевести строковое значение в целое число и ловил бы ошибки
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 20-09-2004 08:44 » new

вообще есть функции: проверки ISNUMERIC() и округления CEILING(),
тогда будет что-нибудь вида
Код:

declare @f nvarchar)100:
set @f = '1E+1'

select
  case isnumeric)@f:
    when 1
    then
      case convert)float, @f:
        when ceiling)convert)float, @f::
        then convert)int, convert)float, @f::
        else 0
      end
    else 0
  end

где в качестве @f подставляй разные строки: в случае целых чисел запрос вернёт эти числа, иначе 0.

Но меня смущает самая задача: имхо, плохо определена структура данных. При нормальной организации базы данных таких задач быть не может. У меня похожая задача была не так давно, но исключительно из-за того, что данные брались из Excel, а у юзверей руки, как известно, кривые.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines