Я пишу макро переменную, целью которой является создание действующего предложения SQL WHERE, как указано пользователем в приглашениях. Предположим, что мы имеем 3 переменных X, Y, Z и т. Д. Пользователь может указать фильтр для каждой переменной и макропеременной выглядит следующим образом:SAS удаляет указанное слово при его запуске или завершении выражения
a = x eq 1 and y eq 1 and z eq 1;
, который затем приступил к ИНЕК. Но если пользователь указывает только, скажем,»фильтр для Y это выглядит следующим образом:
a = and y eq 1 and
И я хотел бы, чтобы это выглядело как:
a = y eq 1
Вот почему я хотел бы каким-то образом удалить операнд «и», когда он начинает или заканчивает выражение (оно может начать или закончить его несколько раз, например, если мы Фитлер только Z переменной она выглядит):
a = and and and z eq 1
Я предполагаю, что это можно легко сделать с регули но поскольку я новичок в этом, есть ли кто-нибудь, кто хочет мне помочь? ;)
У вас уже есть хорошие решения. В зависимости от сложности ваших пользователей иногда вы можете просто иметь единственный параметр WHERE и позволить пользователям писать любое выражение, которое они хотят, в качестве значения одного приглашения, а не передавать значения для каждой части выражения. Для опытных пользователей это дает им большую гибкость, конечно, за счет необходимости требовать от них правильного выражения. – Quentin