powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Классификация строк
6 сообщений из 6, страница 1 из 1
Классификация строк
    #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
Классификация строк
    #37937564
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

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

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

Далее, синтаксический анализ (проверка на ошибки).
Затем - динамический sql.
...
Рейтинг: 0 / 0
Классификация строк
    #37937607
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикКак обычно решаются подобные задачи? Замечу, что пользователь сам хочет вводить условия.
Раз пользователь хочет сам вводить условия - значит, нужна форма, где он будет описывать их в некоем более-менее удобном виде. Эта же форма должна будет не пропускать ошибки. Далее - в зависимости от специфики использования. Например, просто генерить на основании этих данных хранимую функцию "категория строки" и использовать её во вьюхе.
...
Рейтинг: 0 / 0
Классификация строк
    #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
Классификация строк
    #37938160
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КритикСейчас все реализовано в виде очень большого представления с case-выражениями.Да, так и надо делать, генерить представление по вашей таблице с условиями.
...
Рейтинг: 0 / 0
Классификация строк
    #37938418
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, спасибо!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Классификация строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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