Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Классификация строк / 6 сообщений из 6, страница 1 из 1
30.08.2012, 16:42
    #37937497
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
Коллеги,

Есть задача классифицировать массив строк.

Проблема в том, что условие классификации не жесткое, то есть оно примерно в таком виде:

условие вид строкистрока Like '%1%' and строка Like '%7%' вид строки 1строка Like '%2%' or строка Like '%55%' вид строки 2строка Like '%3%' вид строки 3строка = '567' вид строки 4строка in ('99';'22';'78') or строка Like '50%' вид строки 5

Как обычно решаются подобные задачи? Замечу, что пользователь сам хочет вводить условия.

ПО - MS SQL (изменить нельзя),
доп-компоненты нежелательны, но возможно использование Excel

Сейчас все реализовано в виде очень большого представления с case-выражениями.
...
Рейтинг: 0 / 0
30.08.2012, 17:07
    #37937564
trew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
Критик,

А зачем необходимо классифицировать массив строк?

Может для этой задачи сделать форму-конструктор с условиями (AND, OR, <, >, =,...)
куда пользователь добавляет поля (из списка) и пишет условия.

Далее, синтаксический анализ (проверка на ошибки).
Затем - динамический sql.
...
Рейтинг: 0 / 0
30.08.2012, 17:28
    #37937607
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
КритикКак обычно решаются подобные задачи? Замечу, что пользователь сам хочет вводить условия.
Раз пользователь хочет сам вводить условия - значит, нужна форма, где он будет описывать их в некоем более-менее удобном виде. Эта же форма должна будет не пропускать ошибки. Далее - в зависимости от специфики использования. Например, просто генерить на основании этих данных хранимую функцию "категория строки" и использовать её во вьюхе.
...
Рейтинг: 0 / 0
31.08.2012, 08:13
    #37938148
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
Я себе сделал визуальный сборщик любых WHERE конструкций. На рисунке "синтаксическое дерево". Получается хрень типа (iCustomerTypeID = 3000) AND ((sCustomerResidentFlag = 'Y') AND (((sCustomerRegistrationRevokeFlag = 'Y') AND (sCustomerExpiredFlag <> 'Y')) OR ((sCustomerRegistrationRevokeFlag = 'N') AND (sCustomerExpiredFlag <> 'N')) OR ((sCustomerRegistrationRevokeFlag = 'Y') AND (dtCustomerExpiredDate IS NULL)) OR ((sCustomerExpiredFlag = 'Y') AND (dtCustomerExpiredDate IS NULL)) OR ((sCustomerRegistrationRevokeFlag = 'N') AND (dtCustomerExpiredDate IS NOT NULL)) OR ((sCustomerExpiredFlag = 'N') AND (dtCustomerExpiredDate IS NOT NULL)))) AND ((1 = 1) OR (sCustomerName = '') OR (sCustomerFullName = '') OR (sCustomerReportName = '') OR (iCustomerRegistrationCode = 0))
...
Рейтинг: 0 / 0
31.08.2012, 08:27
    #37938160
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
КритикСейчас все реализовано в виде очень большого представления с case-выражениями.Да, так и надо делать, генерить представление по вашей таблице с условиями.
...
Рейтинг: 0 / 0
31.08.2012, 11:38
    #37938418
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классификация строк
Коллеги, спасибо!
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Классификация строк / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]