Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Вниззапрос Найти похожие ветки
← →
GanibalLector © (2004-07-19 11:33) [0]Предположим,имеется следующая структура таблицы:
Id-int
Pl-varchar(8)
И в ней,напимер,такие данные:
1 АБ000001
2 АБ000002
3 АБ000003
4 ББ000200
5 ББ000201
Так вот,необходимо выбрать пломбы заданной серии и без показа самой серий.
Т.е. так (предположим вырираем серию "ББ") :
1 000200
2 000201
Что посоветуете ???
← →
Соловьев © (2004-07-19 11:37) [1]like
← →
stud © (2004-07-19 11:37) [2]ну можно разбить номер на серию и сам номер. либо использовать starting в запросе. и поле не varcahr а char
← →
GanibalLector © (2004-07-19 11:39) [3]2 Соловьев
like это понятно,а как убрать первые два символа???
← →
Johnmen © (2004-07-19 11:40) [4]+ SUBSTRING(Pl FROM 3 FOR 6)
← →
GanibalLector © (2004-07-19 11:41) [5]может есть какие нибудь UDF?
← →
Курдль © (2004-07-19 11:48) [6]Млин, а поделить поле PI на 2 - "серия" и "номер"?
← →
Digitman © (2004-07-19 11:49) [7]если структуру базы изменить не представляется возможным, таблица небольшая по размеру и/или нет особых ограничений по траффику, то проще всего сделать так :
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 символов
← →
Sandman25 © (2004-07-19 11:51) [8]Я бы обрабатывал TField.OnGetText
Delete(Text,1, 2)
← →
GanibalLector © (2004-07-19 12:01) [9]2 Johnmen
Спасибо...помогло.
select SUBSTRING(Pl FROM 3 FOR 6) from trach where pl like "AA%"
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c