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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.