![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дни недели [D7, MSSQL]
Iddqd © (2004-07-06 11:27:00)Уважаемые мастера, помогите решить следующую задачу:
В таблице есть строковое поле 'DAYS' в формате : пвсчпсв (обозначающее соотвественно понедельник, вторник и т.д). Оно может принимать значения : п_сч_св или _____св и т.д. Пользователь в программе выбирает с помощью чекбоксов нужные дни недели и соотвественно должны отразиться те записи которые включают эти дни. Пока это решено на уровне самой программы. Т.е выбираются все записи а уж потом не нужные отсеиваются. Как сделать подобное в SQL запросе.
Fay (2004-07-06 12:27:00) [41]Хранить 1 байт как флаговый. 1 = п, 5 = п_с____ и т.д.
Наталия (2004-07-06 11:49:00) [42]Тогда придется делать какую-то имитацию семи логических полей :))
Что-то типа substr(days,1,1), substr(days,2,1) и т.п. (не знаю только как в MSSQL называется функция, выделяющая из строки подстроку)
Johnmen (2004-07-06 11:47:00) [43]"пвсч_с_" :
(DAYS LIKE 'п______') OR
(DAYS LIKE '_в_____') OR
(DAYS LIKE '__с____') OR
(DAYS LIKE '___ч___') OR
(DAYS LIKE '_____с_')
Iddqd (2004-07-06 11:44:00) [44]"Like" не пойдет. Например юзер выбрал "пвсч_с_" , тогда блок с плок со значением "_в_с___в" должен отобразиться
Соловьев (2004-07-06 11:39:00) [45]не-а :)
ИМХО, надо было структуру сделать таблицы нормальной где ввести 7 логических полей.
Соловьев (2004-07-06 11:38:00) [46]select *
from table
where days like 'п_сч_св'