>>I don't disagree - but the line of code I posted is legal, and accomplishes the task without the need for the intervening memvar. I rarely advocate macro expansions, but Mike's syntactic argument was not correct. I did state up front that, IMO, EVAL() is a better solution.
>
>Can you think of a place where macro expansion would be better than EVAL ?
Sure - expanding the target of an operation or a full clause of a command where name substitution is inappropriate are obvious ones. Situations where the macro expansion occurs once rather than per record EVAL() is another, for example:
cExprToTest = 'Color = "RED"'
SELECT * FROM MyTable WHERE &cExprToTest
will outperform
SELECT * FROM MyTable WHERE EVAL(cExprToTest)
since the macro expansion is executed once, and the expanded statement then becomes Rushmore optimzable (assuming appropriate tags), where the EVAL() must execute against each record of the table.