Hi,
I intend to select those cases which satisfy:
IF regno LIKE ('M%15', 'M%25', 'M%30', 'DISC') THEN OUTPUT;
However, this code is wrong.
How can I accomplish this? Thanks a lot.
The like operator is not available to the if statement only where clauses also I am quite sure it cannot be combined with the in operator to have a list of values.
You can only use LIKE in a WHERE clause not an if.
The like operator is not available to the if statement only where clauses also I am quite sure it cannot be combined with the in operator to have a list of values.
An alternative way is to use perl regular expression.
IF prxmatch('/M.*15|M.*25|M.*30|DISC/',regno) THEN OUTPUT;
Ksharp
For what it's worth, I found that using CASE within a PROC SQL SELECT statement worked for me. Sharing the example code in case it is useful.
PROC SQL;
CREATE TABLE SET_A AS
SELECT *, (CASE
WHEN FIELD LIKE 'APPL%' THEN 'A'
WHEN FIELD LIKE 'SYS%' THEN 'B'
ELSE ''
END
)
AS NEW_FIELDNAME
FROM SOURCE_TABLE
WHERE OTHER_CRITERIA = 'XXX';
RUN;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.