![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос [D5, IB или FB]
GanibalLector © (2004-07-19 11:33:00)Предположим,имеется следующая структура таблицы:
Id-int
Pl-varchar(8)
И в ней,напимер,такие данные:
1 АБ000001
2 АБ000002
3 АБ000003
4 ББ000200
5 ББ000201
Так вот,необходимо выбрать пломбы заданной серии и без показа самой серий.
Т.е. так (предположим вырираем серию "ББ") :
1 000200
2 000201
Что посоветуете ???
GanibalLector (2004-07-19 12:01:00) [1]2 Johnmen
Спасибо...помогло.
select SUBSTRING(Pl FROM 3 FOR 6) from trach where pl like 'AA%'
Sandman25 (2004-07-19 11:51:00) [2]Я бы обрабатывал TField.OnGetText
Delete(Text,1, 2)
Digitman (2004-07-19 11:49:00) [3]если структуру базы изменить не представляется возможным, таблица небольшая по размеру и/или нет особых ограничений по траффику, то проще всего сделать так :
1. выбираем записи, начинающиеся с 'ББ' в поле Pl
select * from MyTable where Pl like 'ББ'
// Id -> MyDataSet.Fields[0]
// Pl -> MyDataSet.Fields[1], Visible = false
2. на кл.стороне организуем доп.вычисляемое поле Fields[2], далее в обработчике OnCalcFields объекта TDataSet, управляющего результирующим НД, пишем
with MyDataSet do
Fields[2].Value := Copy(Fields[1], 3, 6); //показываем только правые 6 символов
Курдль (2004-07-19 11:48:00) [4]Млин, а поделить поле PI на 2 - "серия" и "номер"?
GanibalLector (2004-07-19 11:41:00) [5]может есть какие нибудь UDF?
Johnmen (2004-07-19 11:40:00) [6]+ SUBSTRING(Pl FROM 3 FOR 6)
GanibalLector (2004-07-19 11:39:00) [7]2 Соловьев
like это понятно,а как убрать первые два символа???
Соловьев (2004-07-19 11:37:00) [8]like
stud (2004-07-19 11:37:00) [9]ну можно разбить номер на серию и сам номер. либо использовать starting в запросе. и поле не varcahr а char