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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.