![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка определенного количества символов в SQL запросе
Константин_ © (2006-07-26 10:30:00)Как выбрать определенное количество символов в sql запросе начиная с конца поля, например "123456" > "3456"
С уважением.
Константин_ (2006-07-26 12:26:00) [1]Можно было бы оставить... но прога уже в эксплуатации... недоглядел, теперь мучаюсь
ЮЮ (2006-07-26 12:20:00) [2]Ну и откуда эта 1 в базе?
следующее показание будет 0100, а у тебя уже предыдущее 10010. Опять перекрутка нужна? Или пририсовка?
Может лучше оставлять как есть 0010?
А при расчетах учитывать возможность "перекрутки"
Константин_ (2006-07-26 12:04:00) [3]начальные показания 9985 последние показания 0010 в баз 10010
ЮЮ (2006-07-26 12:01:00) [4]
> а у него есть такая особенность перекручиваться... очень
> не хорошая.
У него наверное всего 4 числа то и есть и для него естественно "перекручиваться", а вот откуда в базе появляются неестественные 5-е цифры?
Константин_ (2006-07-26 11:53:00) [5]Поля договор взял из др. базы, что бы попробовать запрос... водомеров под рукой нет
Константин_ (2006-07-26 11:52:00) [6]Работа ведеться с водомерным счетчиком, а у него есть такая особенность перекручиваться... очень не хорошая.
Спасибо за помощь.
ЮЮ (2006-07-26 11:50:00) [7]З.Ы. Как будешь различать договора 12 3456и 21 3456после такого запроса?
ЮЮ (2006-07-26 11:48:00) [8]SELECT dogovor from pred.dbf where cast(dogovor as int) < 10000
/* 1 - 4х значные*.
UNION ALL
SELECT Substring(dogovor from 2 for 4) FROM pred.dbf
where cast(dogovor as int) BETWEEN 10000 AND 99999
/* для 5-начных*/
UNION ALL
... и так далее
З.Ы. зачем такие важные последнии символа слис со столь маловажными первыми в одом поле? Раздели, пока не поздно
Константин_ (2006-07-26 11:47:00) [9]выборка производиться из талицы DBase IV при помощи компонента Query
ЮЮ (2006-07-26 11:35:00) [10]БД какая?
В таком запросе получается выборка 3 символов с начала строки, а может его можно как то изменить?
С начал строки, естественно, проблем нет, коль есть Substring()
Desdechado (2006-07-26 11:31:00) [11]Видимо, намек указать СУБД не понят.
Константин_ (2006-07-26 11:03:00) [12]
select cast(dogovor as char(3)) from pred.dbf where cast(dogovor as int)>1000
В таком запросе получается выборка 3 символов с начала строки, а может его можно как то изменить?
ЮЮ (2006-07-26 10:40:00) [13]В MS SQL: RIGHT(<строка>, <количество>)
У других серверов, наверняка, что-то найдется подобное.
В стандарте, имхо, такого нет. Лишь SUBSTRING, т.е. подйдет, если количество симолов в значениях поля одинаковое и известное